summaryrefslogtreecommitdiff
path: root/src/ejabberd_commands.erl
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2015-10-19 20:16:04 +0300
committerAlexey Shchepin <alexey@process-one.net>2015-10-19 20:16:04 +0300
commit7c1e7e5b5f0342326e38451abe4bc3ca48e3d13c (patch)
tree3e15169c06578089b59bb48a82c5b1f12009560f /src/ejabberd_commands.erl
parentFix access_commands option handling (diff)
Improve access_commands option backward compatibility
Diffstat (limited to 'src/ejabberd_commands.erl')
-rw-r--r--src/ejabberd_commands.erl11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/ejabberd_commands.erl b/src/ejabberd_commands.erl
index ba604a07..9f55035d 100644
--- a/src/ejabberd_commands.erl
+++ b/src/ejabberd_commands.erl
@@ -226,6 +226,7 @@
-include("ejabberd.hrl").
-include("logger.hrl").
+-define(POLICY_ACCESS, '$policy').
init() ->
ets:new(ejabberd_commands, [named_table, set, public,
@@ -483,7 +484,7 @@ check_auth(_Command, {User, Server, Password, _}) when is_binary(Password) ->
_ -> throw({error, invalid_account_data})
end.
-check_access(Command, all, _)
+check_access(Command, ?POLICY_ACCESS, _)
when Command#ejabberd_commands.policy == open ->
true;
check_access(_Command, _Access, admin) ->
@@ -491,7 +492,7 @@ check_access(_Command, _Access, admin) ->
check_access(_Command, _Access, {_User, _Server, _, true}) ->
false;
check_access(Command, Access, Auth)
- when Access =/= all;
+ when Access =/= ?POLICY_ACCESS;
Command#ejabberd_commands.policy == open;
Command#ejabberd_commands.policy == user ->
case check_auth(Command, Auth) of
@@ -503,6 +504,8 @@ check_access(Command, Access, Auth)
check_access(_Command, _Access, _Auth) ->
false.
+check_access2(?POLICY_ACCESS, _User, _Server) ->
+ true;
check_access2(Access, User, Server) ->
%% Check this user has access permission
case acl:match_rule(Server, Access, jlib:make_jid(User, Server, <<"">>)) of
@@ -536,9 +539,11 @@ tag_arguments(ArgsDefs, Args) ->
Args).
+get_access_commands(unrestricted) ->
+ [];
get_access_commands(undefined) ->
Cmds = get_commands(),
- [{all, Cmds, []}];
+ [{?POLICY_ACCESS, Cmds, []}];
get_access_commands(AccessCommands) ->
AccessCommands.