mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-26 16:26:24 +01:00
mod_register Access now also controls account unregistrations
This commit is contained in:
parent
34fc5d82b3
commit
0c7ce8b7fe
@ -3838,10 +3838,11 @@ enables end users to use a \XMPP{} client to:
|
|||||||
|
|
||||||
Options:
|
Options:
|
||||||
\begin{description}
|
\begin{description}
|
||||||
\titem{\{access, AccessName\}} \ind{options!access}This option can be configured to specify
|
\titem{\{access, AccessName\}} \ind{options!access}
|
||||||
rules to restrict registration. If a rule returns `deny' on the requested
|
Specify rules to restrict what usernames can be registered and unregistered.
|
||||||
user name, registration for that user name is denied. (there are no
|
If a rule returns `deny' on the requested username,
|
||||||
restrictions by default).
|
registration and unregistration of that user name is denied.
|
||||||
|
There are no restrictions by default.
|
||||||
\titem{\{access\_from, AccessName\}} \ind{options!access\_from}By default, \ejabberd{}
|
\titem{\{access\_from, AccessName\}} \ind{options!access\_from}By default, \ejabberd{}
|
||||||
doesn't allow to register new accounts from s2s or existing c2s sessions. You can
|
doesn't allow to register new accounts from s2s or existing c2s sessions. You can
|
||||||
change it by defining access rule in this option. Use with care: allowing registration
|
change it by defining access rule in this option. Use with care: allowing registration
|
||||||
|
@ -108,8 +108,10 @@ process_iq(From, To,
|
|||||||
PTag = exmpp_xml:get_element(SubEl, 'password'),
|
PTag = exmpp_xml:get_element(SubEl, 'password'),
|
||||||
RTag = exmpp_xml:get_element(SubEl, 'remove'),
|
RTag = exmpp_xml:get_element(SubEl, 'remove'),
|
||||||
Server = exmpp_jid:prep_domain_as_list(To),
|
Server = exmpp_jid:prep_domain_as_list(To),
|
||||||
|
Access = gen_mod:get_module_opt(Server, ?MODULE, access, all),
|
||||||
|
AllowRemove = (allow == acl:match_rule(Server, Access, From)),
|
||||||
if
|
if
|
||||||
(UTag /= undefined) and (RTag /= undefined) ->
|
(UTag /= undefined) and (RTag /= undefined) and AllowRemove ->
|
||||||
User = exmpp_xml:get_cdata_as_list(UTag),
|
User = exmpp_xml:get_cdata_as_list(UTag),
|
||||||
case {exmpp_jid:node_as_list(From), exmpp_jid:prep_domain_as_list(From)} of
|
case {exmpp_jid:node_as_list(From), exmpp_jid:prep_domain_as_list(From)} of
|
||||||
{User, Server} ->
|
{User, Server} ->
|
||||||
@ -144,7 +146,7 @@ process_iq(From, To,
|
|||||||
exmpp_iq:error(IQ_Rec, 'bad-request')
|
exmpp_iq:error(IQ_Rec, 'bad-request')
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
(UTag == undefined) and (RTag /= undefined) ->
|
(UTag == undefined) and (RTag /= undefined) and AllowRemove ->
|
||||||
case {exmpp_jid:node_as_list(From),
|
case {exmpp_jid:node_as_list(From),
|
||||||
exmpp_jid:prep_domain_as_list(From),
|
exmpp_jid:prep_domain_as_list(From),
|
||||||
exmpp_jid:resource_as_list(From)}of
|
exmpp_jid:resource_as_list(From)}of
|
||||||
|
Loading…
Reference in New Issue
Block a user