From 866e5c2d82c63d4c8794d9c70e079ab749ee6305 Mon Sep 17 00:00:00 2001 From: Badlop Date: Tue, 12 Feb 2008 01:04:47 +0000 Subject: * src/acl.erl: Normalize ACL before adding to the configuration tables (EJAB-521) SVN Revision: 1185 --- src/acl.erl | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'src') 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) -> -- cgit v1.2.3