From 7c1e7e5b5f0342326e38451abe4bc3ca48e3d13c Mon Sep 17 00:00:00 2001 From: Alexey Shchepin Date: Mon, 19 Oct 2015 20:16:04 +0300 Subject: Improve access_commands option backward compatibility --- src/ejabberd_commands.erl | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/ejabberd_commands.erl') 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. -- cgit v1.2.3