diff options
author | Paul "LeoNerd" Evans <paul@matrix.org> | 2015-04-21 20:56:08 +0100 |
---|---|---|
committer | Paul "LeoNerd" Evans <paul@matrix.org> | 2015-04-21 20:56:08 +0100 |
commit | bc41f0398f081177ebc8036280f935d8bcb7bca0 (patch) | |
tree | 4b8e619788cbc384d04451e38423f8eff6f173bd /synapse/api/auth.py | |
parent | Much neater fetching of defined powerlevels from m.room.power_levels state event (diff) | |
download | synapse-bc41f0398f081177ebc8036280f935d8bcb7bca0.tar.xz |
Initial implementation of an 'invite' power_level
Diffstat (limited to 'synapse/api/auth.py')
-rw-r--r-- | synapse/api/auth.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/synapse/api/auth.py b/synapse/api/auth.py index 9a5058a364..84a46385bb 100644 --- a/synapse/api/auth.py +++ b/synapse/api/auth.py @@ -232,6 +232,13 @@ class Auth(object): elif target_in_room: # the target is already in the room. raise AuthError(403, "%s is already in the room." % target_user_id) + else: + invite_level = self._get_named_level(auth_events, "invite", 0) + + if user_level < invite_level: + raise AuthError( + 403, "You cannot invite user %s." % target_user_id + ) elif Membership.JOIN == membership: # Joins are valid iff caller == target and they were: # invited: They are accepting the invitation |