aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mod_muc_room.erl9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/mod_muc_room.erl b/src/mod_muc_room.erl
index bc4b0a05b..ede3c8ebb 100644
--- a/src/mod_muc_room.erl
+++ b/src/mod_muc_room.erl
@@ -3055,11 +3055,20 @@ can_change_ra(owner, moderator, TAffiliation,
moderator, role, none, _ServiceAf)
when TAffiliation /= owner ->
true;
+can_change_ra(owner, subscriber, TAffiliation,
+ moderator, role, none, _ServiceAf)
+ when TAffiliation /= owner ->
+ true;
can_change_ra(admin, moderator, TAffiliation,
moderator, role, none, _ServiceAf)
when (TAffiliation /= owner) and
(TAffiliation /= admin) ->
true;
+can_change_ra(admin, subscriber, TAffiliation,
+ moderator, role, none, _ServiceAf)
+ when (TAffiliation /= owner) and
+ (TAffiliation /= admin) ->
+ true;
can_change_ra(_FAffiliation, _FRole, _TAffiliation,
_TRole, role, _Value, _ServiceAf) ->
false.