Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2011-04-27 00:55:04 +0400
committerBadlop <badlop@process-one.net>2011-04-27 00:55:04 +0400
commit4f4c8eb61eba2fcf35e4d6f9e7c13c2576ebe60c (patch)
tree34a9e983a26d6629793c27e839efc5ad81bda92d /src/mod_register.erl
parent3952888f94457af484fe6f1cab1a457f5515d24f (diff)
mod_register Access now also controls account unregistrations
Diffstat (limited to 'src/mod_register.erl')
-rw-r--r--src/mod_register.erl6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mod_register.erl b/src/mod_register.erl
index da1e21bdc..048678373 100644
--- a/src/mod_register.erl
+++ b/src/mod_register.erl
@@ -106,8 +106,10 @@ process_iq(From, To,
PTag = xml:get_subtag(SubEl, "password"),
RTag = xml:get_subtag(SubEl, "remove"),
Server = To#jid.lserver,
+ Access = gen_mod:get_module_opt(Server, ?MODULE, access, all),
+ AllowRemove = (allow == acl:match_rule(Server, Access, From)),
if
- (UTag /= false) and (RTag /= false) ->
+ (UTag /= false) and (RTag /= false) and AllowRemove ->
User = xml:get_tag_cdata(UTag),
case From of
#jid{user = User, lserver = Server} ->
@@ -148,7 +150,7 @@ process_iq(From, To,
sub_el = [SubEl, ?ERR_BAD_REQUEST]}
end
end;
- (UTag == false) and (RTag /= false) ->
+ (UTag == false) and (RTag /= false) and AllowRemove ->
case From of
#jid{user = User,
lserver = Server,