]> granicus.if.org Git - ejabberd/commitdiff
* src/web/ejabberd_web_admin.erl: Fixed native support for all the
authorBadlop <badlop@process-one.net>
Tue, 12 Feb 2008 01:16:11 +0000 (01:16 +0000)
committerBadlop <badlop@process-one.net>
Tue, 12 Feb 2008 01:16:11 +0000 (01:16 +0000)
ACL types (EJAB-253)

SVN Revision: 1186

ChangeLog
src/web/ejabberd_web_admin.erl

index 12e21ecbe5c3dad93e94599ccd062945f57ded97..4efaee5fb14d8c79a4896bc4a8b7d00e631358a0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2008-02-12  Badlop  <badlop@process-one.net>
 
+       * src/web/ejabberd_web_admin.erl: Fixed native support for all the
+       ACL types (EJAB-253)
+
        * src/acl.erl: Normalize ACL before adding to the configuration
        tables (EJAB-521)
 
index cf87ea102a206d5f94b2d412b03bd79625cc8fe8..e2474920b18ddb335e7bfeb826828735804d2c17 100644 (file)
@@ -1014,7 +1014,7 @@ acl_spec_to_text({server, S}) ->
     {server, S};
 
 acl_spec_to_text({user, U, S}) ->
-    {user_server, U ++ "@" ++ S};
+    {user, U ++ "@" ++ S};
 
 acl_spec_to_text({user_regexp, RU}) ->
     {user_regexp, RU};
@@ -1040,6 +1040,9 @@ acl_spec_to_text({server_glob, RS}) ->
 acl_spec_to_text({node_glob, RU, RS}) ->
     {node_glob, RU ++ "@" ++ RS};
 
+acl_spec_to_text(all) ->
+    {all, ""};
+
 acl_spec_to_text(Spec) ->
     {raw, term_to_string(Spec)}.
 
@@ -1059,8 +1062,8 @@ acl_spec_select(ID, Opt) ->
                        ?XAC("option",
                             Sel ++ [{"value", atom_to_list(O)}],
                             atom_to_list(O))
-               end, [user, server, user_server, user_regexp, server_regexp, 
-                     node_regexp, user_glob, server_glob, node_glob, raw]))]).
+               end, [user, server, user_regexp, server_regexp, 
+                     node_regexp, user_glob, server_glob, node_glob, all, raw]))]).
 
 
 term_to_string(T) ->
@@ -1119,31 +1122,39 @@ acl_parse_submit(ACLs, Query) ->
     NewACLs ++ NewACL.
 
 string_to_spec("user", Val) ->
-    {user, Val};
+    string_to_spec2(user, Val);
 string_to_spec("server", Val) ->
     {server, Val};
-string_to_spec("user_server", Val) ->
-    #jid{luser = U, lserver = S, resource = ""} = jlib:string_to_jid(Val),
-    {user, U, S};
 string_to_spec("user_regexp", Val) ->
-    {user_regexp, Val};
+    string_to_spec2(user_regexp, Val);
 string_to_spec("server_regexp", Val) ->
     {server_regexp, Val};
 string_to_spec("node_regexp", Val) ->
     #jid{luser = U, lserver = S, resource = ""} = jlib:string_to_jid(Val),
     {node_regexp, U, S};
 string_to_spec("user_glob", Val) ->
-    {user_glob, Val};
+    string_to_spec2(user_glob, Val);
 string_to_spec("server_glob", Val) ->
     {server_glob, Val};
 string_to_spec("node_glob", Val) ->
     #jid{luser = U, lserver = S, resource = ""} = jlib:string_to_jid(Val),
     {node_glob, U, S};
+string_to_spec("all", _) ->
+    all;
 string_to_spec("raw", Val) ->
     {ok, Tokens, _} = erl_scan:string(Val ++ "."),
     {ok, NewSpec} = erl_parse:parse_term(Tokens),
     NewSpec.
 
+string_to_spec2(ACLName, Val) ->
+    #jid{luser = U, lserver = S, resource = ""} = jlib:string_to_jid(Val),
+    case U of
+       "" -> 
+           {ACLName, S};
+       _ -> 
+           {ACLName, U, S}
+    end.
+
 
 acl_parse_delete(ACLs, Query) ->
     NewACLs =