diff options
author | David Baker <dave@matrix.org> | 2015-04-24 18:11:21 +0100 |
---|---|---|
committer | David Baker <dave@matrix.org> | 2015-04-24 18:11:21 +0100 |
commit | a7b51f4539af90460d47efe0bae2692de285cd26 (patch) | |
tree | 9e5413523390c24e13f35795dae62fff0c627427 /synapse/storage/registration.py | |
parent | Add note about updating your signing keys (ie. "the auto thing") (diff) | |
download | synapse-a7b51f4539af90460d47efe0bae2692de285cd26.tar.xz |
Check users in our table aren't on a different domain to the one we're configured with to try & fix SYN-266
Diffstat (limited to 'synapse/storage/registration.py')
-rw-r--r-- | synapse/storage/registration.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/synapse/storage/registration.py b/synapse/storage/registration.py index f24154f146..c2efc3fd32 100644 --- a/synapse/storage/registration.py +++ b/synapse/storage/registration.py @@ -144,3 +144,21 @@ class RegistrationStore(SQLBaseStore): return rows[0] raise StoreError(404, "Token not found.") + + @defer.inlineCallbacks + def all_users_on_domain(self, domain): + res = yield self.runInteraction( + "all_users_on_domain", + self._all_users_on_domain_txn, + domain + ) + defer.returnValue(res) + + def _all_users_on_domain_txn(self, txn, domain): + sql = "SELECT COUNT(*) FROM users WHERE name NOT LIKE ?" + pat = "%:"+domain + cursor = txn.execute(sql, (pat,)) + num_not_matching = cursor.fetchall()[0][0] + if num_not_matching == 0: + return True + return False \ No newline at end of file |