25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-12-20 17:27:00 +01:00

Improve handling on acl rules in api_permissions

This commit is contained in:
Paweł Chmielowski 2016-12-08 18:07:41 +01:00
parent fdf69dcd0d
commit a50247c20d

View File

@ -266,7 +266,7 @@ matches_definition({_Name, {From, Who, What}}, Cmd, Module, Host, CallerInfo) ->
lists:any(
fun({access, Access}) when Scope == none ->
acl:access_matches(Access, CallerInfo, Host) == allow;
({acl, _} = Acl) when Scope == none ->
({acl, Acl}) when Scope == none ->
acl:acl_rule_matches(Acl, CallerInfo, Host);
({oauth, Scopes, List}) when Scope /= none ->
case ejabberd_oauth:scope_in_scope_list(Scope, Scopes) of
@ -274,7 +274,7 @@ matches_definition({_Name, {From, Who, What}}, Cmd, Module, Host, CallerInfo) ->
lists:any(
fun({access, Access}) ->
acl:access_matches(Access, CallerInfo, Host) == allow;
({acl, _} = Acl) ->
({acl, Acl} = Acl) ->
acl:acl_rule_matches(Acl, CallerInfo, Host)
end, List);
_ ->
@ -407,7 +407,7 @@ parse_who(Name, Defs, ParseOauth) when is_list(Defs) ->
{scope, ScopeList2}
end;
(Atom) when is_atom(Atom) ->
{acl, Atom};
{acl, {acl, Atom}};
([Other]) ->
try acl:normalize_spec(Other) of
Rule2 ->