mirror of
https://github.com/processone/ejabberd.git
synced 2024-06-12 21:52:07 +02:00
Use mnesia calls instead of ets for Acl and Access tables (#1206)
This commit is contained in:
parent
662b6f1020
commit
da291d804c
|
@ -449,9 +449,9 @@ access_matches(all, _Data, _Host) ->
|
||||||
access_matches(none, _Data, _Host) ->
|
access_matches(none, _Data, _Host) ->
|
||||||
deny;
|
deny;
|
||||||
access_matches(Name, Data, Host) when is_atom(Name) ->
|
access_matches(Name, Data, Host) when is_atom(Name) ->
|
||||||
GAccess = ets:lookup(access, {Name, global}),
|
GAccess = mnesia:dirty_read(access, {Name, global}),
|
||||||
LAccess =
|
LAccess =
|
||||||
if Host /= global -> ets:lookup(access, {Name, Host});
|
if Host /= global -> mnesia:dirty_read(access, {Name, Host});
|
||||||
true -> []
|
true -> []
|
||||||
end,
|
end,
|
||||||
case GAccess ++ LAccess of
|
case GAccess ++ LAccess of
|
||||||
|
@ -484,7 +484,7 @@ access_rules_matches([], _Data, _Host, Default) ->
|
||||||
Default.
|
Default.
|
||||||
|
|
||||||
get_aclspecs(ACL, Host) ->
|
get_aclspecs(ACL, Host) ->
|
||||||
ets:lookup(acl, {ACL, Host}) ++ ets:lookup(acl, {ACL, global}).
|
mnesia:dirty_read(acl, {ACL, Host}) ++ mnesia:dirty_read(acl, {ACL, global}).
|
||||||
|
|
||||||
is_regexp_match(String, RegExp) ->
|
is_regexp_match(String, RegExp) ->
|
||||||
case ejabberd_regexp:run(String, RegExp) of
|
case ejabberd_regexp:run(String, RegExp) of
|
||||||
|
|
|
@ -747,7 +747,7 @@ process_admin(Host,
|
||||||
_ -> nothing
|
_ -> nothing
|
||||||
end,
|
end,
|
||||||
ACLs = lists:keysort(2,
|
ACLs = lists:keysort(2,
|
||||||
ets:select(acl,
|
mnesia:dirty_select(acl,
|
||||||
[{{acl, {'$1', Host}, '$2'}, [],
|
[{{acl, {'$1', Host}, '$2'}, [],
|
||||||
[{{acl, '$1', '$2'}}]}])),
|
[{{acl, '$1', '$2'}}]}])),
|
||||||
{NumLines, ACLsP} = term_to_paragraph(ACLs, 80),
|
{NumLines, ACLsP} = term_to_paragraph(ACLs, 80),
|
||||||
|
@ -784,7 +784,7 @@ process_admin(Host,
|
||||||
_ -> nothing
|
_ -> nothing
|
||||||
end,
|
end,
|
||||||
ACLs = lists:keysort(2,
|
ACLs = lists:keysort(2,
|
||||||
ets:select(acl,
|
mnesia:dirty_select(acl,
|
||||||
[{{acl, {'$1', Host}, '$2'}, [],
|
[{{acl, {'$1', Host}, '$2'}, [],
|
||||||
[{{acl, '$1', '$2'}}]}])),
|
[{{acl, '$1', '$2'}}]}])),
|
||||||
make_xhtml((?H1GL((?T(<<"Access Control Lists">>)),
|
make_xhtml((?H1GL((?T(<<"Access Control Lists">>)),
|
||||||
|
@ -849,7 +849,7 @@ process_admin(Host,
|
||||||
end;
|
end;
|
||||||
_ -> nothing
|
_ -> nothing
|
||||||
end,
|
end,
|
||||||
Access = ets:select(access,
|
Access = mnesia:dirty_select(access,
|
||||||
[{{access, {'$1', Host}, '$2'}, [],
|
[{{access, {'$1', Host}, '$2'}, [],
|
||||||
[{{access, '$1', '$2'}}]}]),
|
[{{access, '$1', '$2'}}]}]),
|
||||||
{NumLines, AccessP} = term_to_paragraph(lists:keysort(2,Access), 80),
|
{NumLines, AccessP} = term_to_paragraph(lists:keysort(2,Access), 80),
|
||||||
|
@ -883,7 +883,7 @@ process_admin(Host,
|
||||||
end;
|
end;
|
||||||
_ -> nothing
|
_ -> nothing
|
||||||
end,
|
end,
|
||||||
AccessRules = ets:select(access,
|
AccessRules = mnesia:dirty_select(access,
|
||||||
[{{access, {'$1', Host}, '$2'}, [],
|
[{{access, {'$1', Host}, '$2'}, [],
|
||||||
[{{access, '$1', '$2'}}]}]),
|
[{{access, '$1', '$2'}}]}]),
|
||||||
make_xhtml((?H1GL((?T(<<"Access Rules">>)),
|
make_xhtml((?H1GL((?T(<<"Access Rules">>)),
|
||||||
|
@ -1153,7 +1153,7 @@ term_to_paragraph(T, Cols) ->
|
||||||
term_to_id(T) -> jlib:encode_base64((term_to_binary(T))).
|
term_to_id(T) -> jlib:encode_base64((term_to_binary(T))).
|
||||||
|
|
||||||
acl_parse_query(Host, Query) ->
|
acl_parse_query(Host, Query) ->
|
||||||
ACLs = ets:select(acl,
|
ACLs = mnesia:dirty_select(acl,
|
||||||
[{{acl, {'$1', Host}, '$2'}, [],
|
[{{acl, {'$1', Host}, '$2'}, [],
|
||||||
[{{acl, '$1', '$2'}}]}]),
|
[{{acl, '$1', '$2'}}]}]),
|
||||||
case lists:keysearch(<<"submit">>, 1, Query) of
|
case lists:keysearch(<<"submit">>, 1, Query) of
|
||||||
|
@ -1267,7 +1267,7 @@ access_rules_to_xhtml(AccessRules, Lang) ->
|
||||||
<<"Add New">>)])])]))]).
|
<<"Add New">>)])])]))]).
|
||||||
|
|
||||||
access_parse_query(Host, Query) ->
|
access_parse_query(Host, Query) ->
|
||||||
AccessRules = ets:select(access,
|
AccessRules = mnesia:dirty_select(access,
|
||||||
[{{access, {'$1', Host}, '$2'}, [],
|
[{{access, {'$1', Host}, '$2'}, [],
|
||||||
[{{access, '$1', '$2'}}]}]),
|
[{{access, '$1', '$2'}}]}]),
|
||||||
case lists:keysearch(<<"addnew">>, 1, Query) of
|
case lists:keysearch(<<"addnew">>, 1, Query) of
|
||||||
|
|
|
@ -1337,7 +1337,7 @@ get_form(Host, [<<"config">>, <<"acls">>], Lang) ->
|
||||||
[{xmlcdata, S}]}
|
[{xmlcdata, S}]}
|
||||||
end,
|
end,
|
||||||
str:tokens(iolist_to_binary(io_lib:format("~p.",
|
str:tokens(iolist_to_binary(io_lib:format("~p.",
|
||||||
[ets:select(acl,
|
[mnesia:dirty_select(acl,
|
||||||
[{{acl,
|
[{{acl,
|
||||||
{'$1',
|
{'$1',
|
||||||
'$2'},
|
'$2'},
|
||||||
|
@ -1372,7 +1372,7 @@ get_form(Host, [<<"config">>, <<"access">>], Lang) ->
|
||||||
[{xmlcdata, S}]}
|
[{xmlcdata, S}]}
|
||||||
end,
|
end,
|
||||||
str:tokens(iolist_to_binary(io_lib:format("~p.",
|
str:tokens(iolist_to_binary(io_lib:format("~p.",
|
||||||
[ets:select(access,
|
[mnesia:dirty_select(access,
|
||||||
[{{access,
|
[{{access,
|
||||||
{'$1',
|
{'$1',
|
||||||
'$2'},
|
'$2'},
|
||||||
|
|
Loading…
Reference in New Issue
Block a user