diff options
author | Badlop <badlop@process-one.net> | 2008-02-12 01:04:47 +0000 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2008-02-12 01:04:47 +0000 |
commit | 60e1972f614e059778431c19b90077560dd73327 (patch) | |
tree | dcfc0b956f47cb9b20452efbfd19058b02258587 | |
parent | use if event instead of x when xmlns is pubsub#event (EJAB-518) (diff) |
* src/acl.erl: Normalize ACL before adding to the configuration
tables (EJAB-521)
SVN Revision: 1185
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | src/acl.erl | 17 |
2 files changed, 19 insertions, 3 deletions
@@ -1,3 +1,8 @@ +2008-02-12 Badlop <badlop@process-one.net> + + * src/acl.erl: Normalize ACL before adding to the configuration + tables (EJAB-521) + 2008-02-11 Christophe Romain <christophe.romain@process-one.net> * src/mod_pubsub/mod_pubsub.erl: Bugfix: event used in place of x when diff --git a/src/acl.erl b/src/acl.erl index ee26a5e42..c3fcebba4 100644 --- a/src/acl.erl +++ b/src/acl.erl @@ -48,12 +48,12 @@ start() -> ok. to_record(Host, ACLName, ACLSpec) -> - #acl{aclname = {ACLName, Host}, aclspec = ACLSpec}. + #acl{aclname = {ACLName, Host}, aclspec = normalize_spec(ACLSpec)}. add(Host, ACLName, ACLSpec) -> F = fun() -> mnesia:write(#acl{aclname = {ACLName, Host}, - aclspec = ACLSpec}) + aclspec = normalize_spec(ACLSpec)}) end, mnesia:transaction(F). @@ -75,7 +75,7 @@ add_list(Host, ACLs, Clear) -> aclspec = ACLSpec} -> mnesia:write( #acl{aclname = {ACLName, Host}, - aclspec = ACLSpec}) + aclspec = normalize_spec(ACLSpec)}) end end, ACLs) end, @@ -86,6 +86,17 @@ add_list(Host, ACLs, Clear) -> false end. +normalize(A) -> + jlib:nodeprep(A). +normalize_spec({A, B}) -> + {A, normalize(B)}; +normalize_spec({A, B, C}) -> + {A, normalize(B), normalize(C)}; +normalize_spec(all) -> + all; +normalize_spec(none) -> + none. + match_rule(global, Rule, JID) -> |