diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | src/mod_muc/mod_muc_room.erl | 37 |
2 files changed, 36 insertions, 6 deletions
@@ -1,3 +1,8 @@ +2005-05-02 Alexey Shchepin <alexey@sevcom.net> + + * src/mod_muc/mod_muc_room.erl: Updated changing roles and + affiliations tables to latest JEP-0045 + 2005-05-01 Mickael Remond <mremond@erlang-fr.org> * src/msgs/fr.msg: Updated diff --git a/src/mod_muc/mod_muc_room.erl b/src/mod_muc/mod_muc_room.erl index 355ada522..24e82c944 100644 --- a/src/mod_muc/mod_muc_room.erl +++ b/src/mod_muc/mod_muc_room.erl @@ -1677,6 +1677,19 @@ can_change_ra(FAffiliation, FRole, when (FAffiliation == owner) or (FAffiliation == admin) -> true; can_change_ra(FAffiliation, FRole, + outcast, TRole, + affiliation, member) + when (FAffiliation == owner) or (FAffiliation == admin) -> + true; +can_change_ra(owner, FRole, + outcast, TRole, + affiliation, admin) -> + true; +can_change_ra(owner, FRole, + outcast, TRole, + affiliation, owner) -> + true; +can_change_ra(FAffiliation, FRole, none, TRole, affiliation, outcast) when (FAffiliation == owner) or (FAffiliation == admin) -> @@ -1714,15 +1727,11 @@ can_change_ra(owner, FRole, true; can_change_ra(owner, FRole, admin, TRole, - affiliation, member) -> - true; -can_change_ra(owner, FRole, - admin, TRole, - affiliation, owner) -> + affiliation, _Affiliation) -> true; can_change_ra(owner, FRole, owner, TRole, - affiliation, admin) -> + affiliation, _Affiliation) -> true; can_change_ra(FAffiliation, FRole, TAffiliation, TRole, @@ -1756,6 +1765,22 @@ can_change_ra(FAffiliation, FRole, true; can_change_ra(FAffiliation, FRole, owner, moderator, + role, visitor) -> + false; +can_change_ra(owner, FRole, + TAffiliation, moderator, + role, visitor) -> + true; +can_change_ra(FAffiliation, FRole, + admin, moderator, + role, visitor) -> + false; +can_change_ra(admin, FRole, + TAffiliation, moderator, + role, visitor) -> + true; +can_change_ra(FAffiliation, FRole, + owner, moderator, role, participant) -> false; can_change_ra(owner, FRole, |