]> granicus.if.org Git - ejabberd/commitdiff
Allow an occupant owner/admin to kick lower-affiliation moderator
authorBadlop <badlop@process-one.net>
Tue, 25 Sep 2018 08:27:17 +0000 (10:27 +0200)
committerBadlop <badlop@process-one.net>
Tue, 25 Sep 2018 08:55:56 +0000 (10:55 +0200)
src/mod_muc_room.erl

index 6d92b709241337522020c44acd0fbc638f830367..bc4b0a05b73ad825ae488dae5db834e2ee561a37 100644 (file)
@@ -3051,6 +3051,15 @@ can_change_ra(_FAffiliation, _FRole, admin, moderator,
 can_change_ra(admin, _FRole, _TAffiliation, moderator,
              role, participant, _ServiceAf) ->
     true;
+can_change_ra(owner, moderator, 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(_FAffiliation, _FRole, _TAffiliation,
              _TRole, role, _Value, _ServiceAf) ->
     false.