From 60e1972f614e059778431c19b90077560dd73327 Mon Sep 17 00:00:00 2001 From: Badlop Date: Tue, 12 Feb 2008 01:04:47 +0000 Subject: [PATCH] * src/acl.erl: Normalize ACL before adding to the configuration tables (EJAB-521) SVN Revision: 1185 --- ChangeLog | 5 +++++ src/acl.erl | 17 ++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index cb88f36f5..12e21ecbe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-02-12 Badlop + + * src/acl.erl: Normalize ACL before adding to the configuration + tables (EJAB-521) + 2008-02-11 Christophe Romain * 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) ->