aboutsummaryrefslogtreecommitdiff
path: root/src/mod_muc_room.erl
diff options
context:
space:
mode:
authorMickael Remond <mremond@process-one.net>2016-11-09 09:04:58 +0100
committerMickael Remond <mremond@process-one.net>2016-11-09 09:04:58 +0100
commit42bede77a1a36c6bbc1ce3c2728e8c3dd78eb5f2 (patch)
tree677c46157270f24a40200ebb21beb5ba0397d358 /src/mod_muc_room.erl
parentExpose unregister API command (diff)
parentSupport several groups separated by ; in add_rosteritem command (diff)
Merge branch 'master' of github.com:processone/ejabberd
Diffstat (limited to 'src/mod_muc_room.erl')
-rw-r--r--src/mod_muc_room.erl7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/mod_muc_room.erl b/src/mod_muc_room.erl
index fc2aeebb6..6010e0bbf 100644
--- a/src/mod_muc_room.erl
+++ b/src/mod_muc_room.erl
@@ -959,6 +959,7 @@ process_groupchat_message(From,
_ ->
case
can_change_subject(Role,
+ IsSubscriber,
StateData)
of
true ->
@@ -2821,10 +2822,10 @@ check_subject(Packet) ->
SubjEl -> fxml:get_tag_cdata(SubjEl)
end.
-can_change_subject(Role, StateData) ->
+can_change_subject(Role, IsSubscriber, StateData) ->
case (StateData#state.config)#config.allow_change_subj
of
- true -> Role == moderator orelse Role == participant;
+ true -> Role == moderator orelse Role == participant orelse IsSubscriber == true;
_ -> Role == moderator
end.
@@ -5056,6 +5057,8 @@ process_invitations(From, InviteEls, Lang, StateData) ->
throw({error, ?ERRT_JID_MALFORMED(Lang, Txt)});
JID1 -> JID1
end,
+ ejabberd_hooks:run(muc_invite, StateData#state.server_host,
+ [StateData#state.jid, StateData#state.config, From, JID, Reason]),
ejabberd_router:route(StateData#state.jid, JID, Msg),
JID
end,