25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-11-24 16:23:40 +01:00

Affiliations other than admin and owner cannot invite to members_only rooms

This is explained in the paragraph:
 If the room is members-only, the service MAY also add the invitee to the
 member list. (Note: Invitation privileges in members-only rooms SHOULD be
 restricted to room admins; if a member without privileges to edit the
 member list attempts to invite another user, the service SHOULD return
 a <forbidden/> error to the occupant; for details, see the Modifying the
 Member List section of this document.)
https://xmpp.org/extensions/xep-0045.html#invite-mediated
This commit is contained in:
Badlop 2018-10-17 12:55:31 +02:00
parent 9a99284dfd
commit b010a1a0a0

View File

@ -4217,7 +4217,8 @@ send_voice_request(From, Lang, StateData) ->
ok | {error, stanza_error()}. ok | {error, stanza_error()}.
check_invitation(From, Invitations, Lang, StateData) -> check_invitation(From, Invitations, Lang, StateData) ->
FAffiliation = get_affiliation(From, StateData), FAffiliation = get_affiliation(From, StateData),
CanInvite = (StateData#state.config)#config.allow_user_invites orelse CanInvite = ((StateData#state.config)#config.allow_user_invites
and not (StateData#state.config)#config.members_only) orelse
FAffiliation == admin orelse FAffiliation == owner, FAffiliation == admin orelse FAffiliation == owner,
case CanInvite of case CanInvite of
true -> true ->