aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbadlop <badlop@ono.com>2014-04-07 12:39:22 +0200
committerbadlop <badlop@ono.com>2014-04-07 12:39:22 +0200
commit2d441b3305dad1a81acb70a04c0debe33eb97dcd (patch)
tree4484d9c672fd58affc904734ab1ce810e10ea288
parentFix user_resources command, and ejabberd_xmlrpc parsing auth details in call (diff)
parentmod_register_web: check same acl as mod_register. (diff)
Merge pull request #156 from hamano/devel
mod_register_web: check same acl as mod_register.
-rw-r--r--src/mod_register_web.erl12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/mod_register_web.erl b/src/mod_register_web.erl
index cade4bcc8..cbb6cd082 100644
--- a/src/mod_register_web.erl
+++ b/src/mod_register_web.erl
@@ -485,9 +485,15 @@ form_del_get(Host, Lang) ->
%% {error, not_allowed} |
%% {error, invalid_jid}
register_account(Username, Host, Password) ->
- case jlib:make_jid(Username, Host, <<"">>) of
- error -> {error, invalid_jid};
- _ -> register_account2(Username, Host, Password)
+ Access = gen_mod:get_module_opt(Host, mod_register, access,
+ fun(A) when is_atom(A) -> A end,
+ all),
+ JID = jlib:make_jid(Username, Host, <<"">>),
+ Match = acl:match_rule(Host, Access, JID),
+ case {JID, Match} of
+ {error, _} -> {error, invalid_jid};
+ {_, deny} -> {error, not_allowed};
+ {_, allow} -> register_account2(Username, Host, Password)
end.
register_account2(Username, Host, Password) ->