aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2007-12-06 18:54:18 +0000
committerBadlop <badlop@process-one.net>2007-12-06 18:54:18 +0000
commit2e732b8b237d5d6b971eba316a50c0faa094d81b (patch)
tree41ead5339d27b140addef8eb29b91c02112e42ba
parent* src/ejabberd_c2s.erl: Increase the timeout of open socket (diff)
* src/web/ejabberd_web_admin.erl: Support more native acl_type on
web interface (EJAB-253) SVN Revision: 1041
-rw-r--r--ChangeLog3
-rw-r--r--src/web/ejabberd_web_admin.erl41
2 files changed, 43 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 118f60c57..9c6bde654 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2007-12-06 Badlop <badlop@process-one.net>
+ * src/web/ejabberd_web_admin.erl: Support more native acl_type on
+ web interface (EJAB-253)
+
* src/ejabberd_c2s.erl: Increase the timeout of open socket
without authentication to 60 seconds because many Jabber clients
are not yet capable of handling this correctly (EJAB-355)
diff --git a/src/web/ejabberd_web_admin.erl b/src/web/ejabberd_web_admin.erl
index 68a8e368d..1e48d218c 100644
--- a/src/web/ejabberd_web_admin.erl
+++ b/src/web/ejabberd_web_admin.erl
@@ -1044,6 +1044,30 @@ acl_spec_to_text({server, S}) ->
acl_spec_to_text({user, U, S}) ->
{user_server, U ++ "@" ++ S};
+acl_spec_to_text({user_regexp, RU}) ->
+ {user_regexp, RU};
+
+acl_spec_to_text({user_regexp, RU, S}) ->
+ {user_regexp, RU ++ "@" ++ S};
+
+acl_spec_to_text({server_regexp, RS}) ->
+ {server_regexp, RS};
+
+acl_spec_to_text({node_regexp, RU, RS}) ->
+ {node_regexp, RU ++ "@" ++ RS};
+
+acl_spec_to_text({user_glob, RU}) ->
+ {user_glob, RU};
+
+acl_spec_to_text({user_glob, RU, S}) ->
+ {user_glob, RU ++ "@" ++ S};
+
+acl_spec_to_text({server_glob, RS}) ->
+ {server_glob, RS};
+
+acl_spec_to_text({node_glob, RU, RS}) ->
+ {node_glob, RU ++ "@" ++ RS};
+
acl_spec_to_text(Spec) ->
{raw, term_to_string(Spec)}.
@@ -1063,7 +1087,8 @@ acl_spec_select(ID, Opt) ->
?XAC("option",
Sel ++ [{"value", atom_to_list(O)}],
atom_to_list(O))
- end, [user, server, user_server, raw]))]).
+ end, [user, server, user_server, user_regexp, server_regexp,
+ node_regexp, user_glob, server_glob, node_glob, raw]))]).
term_to_string(T) ->
@@ -1128,6 +1153,20 @@ string_to_spec("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_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_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("raw", Val) ->
{ok, Tokens, _} = erl_scan:string(Val ++ "."),
{ok, NewSpec} = erl_parse:parse_term(Tokens),