From 652f5f57678acc16d3f4aebf113d20b533825a0a Mon Sep 17 00:00:00 2001 From: Feng Date: Thu, 3 Mar 2016 11:12:08 +0800 Subject: [PATCH] fix issue #450. Print a hint if the auth_username module is not enabled --- src/emqttd_auth_username.erl | 25 +++++++++++++++++++++---- src/emqttd_cli.erl | 6 +++++- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/emqttd_auth_username.erl b/src/emqttd_auth_username.erl index 395233a19..a898f6ea8 100644 --- a/src/emqttd_auth_username.erl +++ b/src/emqttd_auth_username.erl @@ -26,8 +26,9 @@ -behaviour(emqttd_auth_mod). --export([add_user/2, remove_user/1, - lookup_user/1, all_users/0]). +-export([is_enabled/0]). + +-export([add_user/2, remove_user/1, lookup_user/1, all_users/0]). %% emqttd_auth callbacks -export([init/1, check/3, description/0]). @@ -41,19 +42,35 @@ %%-------------------------------------------------------------------- cli(["add", Username, Password]) -> - ?PRINT("~p~n", [add_user(iolist_to_binary(Username), iolist_to_binary(Password))]); + if_enabled(fun() -> + ?PRINT("~p~n", [add_user(iolist_to_binary(Username), iolist_to_binary(Password))]) + end); cli(["del", Username]) -> - ?PRINT("~p~n", [remove_user(iolist_to_binary(Username))]); + if_enabled(fun() -> + ?PRINT("~p~n", [remove_user(iolist_to_binary(Username))]) + end); cli(_) -> ?USAGE([{"users add ", "Add User"}, {"users del ", "Delete User"}]). +if_enabled(Fun) -> + case is_enabled() of + true -> Fun(); + false -> hint() + end. + +hint() -> + ?PRINT_MSG("Please enable '{username, []}' authentication in etc/emqttd.config first.~n"). + %%-------------------------------------------------------------------- %% API %%-------------------------------------------------------------------- +is_enabled() -> + lists:member(?AUTH_USERNAME_TAB, mnesia:system_info(tables)). + %% @doc Add User -spec add_user(binary(), binary()) -> ok | {error, any()}. add_user(Username, Password) -> diff --git a/src/emqttd_cli.erl b/src/emqttd_cli.erl index c1d1f68bf..11a0b23fd 100644 --- a/src/emqttd_cli.erl +++ b/src/emqttd_cli.erl @@ -28,7 +28,7 @@ -export([load/0]). --export([status/1, broker/1, cluster/1, bridges/1, +-export([status/1, broker/1, cluster/1, users/1, bridges/1, clients/1, sessions/1, topics/1, subscriptions/1, plugins/1, listeners/1, vm/1, mnesia/1, trace/1]). @@ -141,6 +141,10 @@ cluster(_) -> {"cluster remove ","Remove the node from cluster"}, {"cluster status", "Cluster status"}]). +%%-------------------------------------------------------------------- +%% @doc Users usage +users(Args) -> emqttd_auth_username:cli(Args). + %%-------------------------------------------------------------------- %% @doc Query clients clients(["list"]) ->