diff options
author | Erik Johnston <erik@matrix.org> | 2014-09-29 13:35:38 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2014-09-29 13:35:38 +0100 |
commit | c65306f8779d480a10b6ce318e73b458538e1eef (patch) | |
tree | 5d4b8b93b37f60b77cfecac95bc0ce9e9356918e /synapse | |
parent | SYN-48: Track User-Agents as well as IPs for client devices. (diff) | |
download | synapse-c65306f8779d480a10b6ce318e73b458538e1eef.tar.xz |
Add auth check to test if a user is an admin or not.
Diffstat (limited to 'synapse')
-rw-r--r-- | synapse/api/auth.py | 3 | ||||
-rw-r--r-- | synapse/storage/registration.py | 8 |
2 files changed, 11 insertions, 0 deletions
diff --git a/synapse/api/auth.py b/synapse/api/auth.py index 739f77afd4..5e3ea5b8c5 100644 --- a/synapse/api/auth.py +++ b/synapse/api/auth.py @@ -259,6 +259,9 @@ class Auth(object): raise AuthError(403, "Unrecognised access token.", errcode=Codes.UNKNOWN_TOKEN) + def is_server_admin(self, user): + return self.store.is_server_admin(user) + @defer.inlineCallbacks @log_function def _can_send_event(self, event): diff --git a/synapse/storage/registration.py b/synapse/storage/registration.py index db20b1daa0..f32b000cb6 100644 --- a/synapse/storage/registration.py +++ b/synapse/storage/registration.py @@ -103,6 +103,14 @@ class RegistrationStore(SQLBaseStore): token) defer.returnValue(user_id) + @defer.inlineCallbacks + def is_server_admin(self, user): + return self._simple_select_one_onecol( + table="users", + keyvalues={"name": user.to_string()}, + retcol="admin", + ) + def _query_for_auth(self, txn, token): txn.execute("SELECT users.name FROM access_tokens LEFT JOIN users" + " ON users.id = access_tokens.user_id WHERE token = ?", |