diff options
author | Alexey Shchepin <alexey@process-one.net> | 2005-05-02 21:59:39 +0000 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2005-05-02 21:59:39 +0000 |
commit | fd118302bcfecf837d87f49e6b81ee59de81fb4f (patch) | |
tree | 69d0f446c9ee060f0dd74e97504d8123f1ec76fd /src/mod_muc/mod_muc_room.erl | |
parent | * src/msgs/sw.msg: Renamed to sv.msg (diff) |
* src/mod_muc/mod_muc_room.erl: Updated changing roles and
affiliations tables to latest JEP-0045
SVN Revision: 338
Diffstat (limited to 'src/mod_muc/mod_muc_room.erl')
-rw-r--r-- | src/mod_muc/mod_muc_room.erl | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/src/mod_muc/mod_muc_room.erl b/src/mod_muc/mod_muc_room.erl index 355ada52..24e82c94 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, |