]> granicus.if.org Git - ejabberd/commitdiff
Accept atoms in api_permission command lists and commands with numbers in them
authorPaweł Chmielowski <pchmielowski@process-one.net>
Wed, 21 Mar 2018 11:53:46 +0000 (12:53 +0100)
committerPaweł Chmielowski <pchmielowski@process-one.net>
Wed, 21 Mar 2018 11:53:46 +0000 (12:53 +0100)
src/ejabberd_access_permissions.erl

index a863e1557beda0c1caddabe75cc71071515e5b69..3a7f81d53493df6c22b30d37c1d4b4bd17fd688b 100644 (file)
@@ -492,6 +492,8 @@ parse_single_what(Binary) when is_binary(Binary) ->
        _ ->
            {error, <<"Invalid value">>}
     end;
+parse_single_what(Atom) when is_atom(Atom) ->
+    parse_single_what(atom_to_binary(Atom, latin1));
 parse_single_what(_) ->
     {error, <<"Invalid value">>}.
 
@@ -502,7 +504,9 @@ is_valid_command_name(Val) ->
 
 is_valid_command_name2(<<>>) ->
     true;
-is_valid_command_name2(<<K:8, Rest/binary>>) when K >= $a andalso K =< $z orelse K == $_ ->
+is_valid_command_name2(<<K:8, Rest/binary>>) when (K >= $a andalso K =< $z)
+                                                 orelse (K >= $0 andalso K =< $9)
+                                                 orelse K == $_ ->
     is_valid_command_name2(Rest);
 is_valid_command_name2(_) ->
     false.