forked from MirrorHub/synapse
Merge pull request #4344 from matrix-org/neilj/fix_synchrotron_fix_4312
Ensure synchrotrons can access is_support_user in the storage layer
This commit is contained in:
commit
f95581332f
2 changed files with 26 additions and 25 deletions
1
changelog.d/4344.bugfix
Normal file
1
changelog.d/4344.bugfix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Fix synchrotron exploding due to being unable to access is_support_user in storage layer
|
|
@ -114,6 +114,31 @@ class RegistrationWorkerStore(SQLBaseStore):
|
||||||
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@cachedInlineCallbacks()
|
||||||
|
def is_support_user(self, user_id):
|
||||||
|
"""Determines if the user is of type UserTypes.SUPPORT
|
||||||
|
|
||||||
|
Args:
|
||||||
|
user_id (str): user id to test
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Deferred[bool]: True if user is of type UserTypes.SUPPORT
|
||||||
|
"""
|
||||||
|
res = yield self.runInteraction(
|
||||||
|
"is_support_user", self.is_support_user_txn, user_id
|
||||||
|
)
|
||||||
|
defer.returnValue(res)
|
||||||
|
|
||||||
|
def is_support_user_txn(self, txn, user_id):
|
||||||
|
res = self._simple_select_one_onecol_txn(
|
||||||
|
txn=txn,
|
||||||
|
table="users",
|
||||||
|
keyvalues={"name": user_id},
|
||||||
|
retcol="user_type",
|
||||||
|
allow_none=True,
|
||||||
|
)
|
||||||
|
return True if res == UserTypes.SUPPORT else False
|
||||||
|
|
||||||
|
|
||||||
class RegistrationStore(RegistrationWorkerStore,
|
class RegistrationStore(RegistrationWorkerStore,
|
||||||
background_updates.BackgroundUpdateStore):
|
background_updates.BackgroundUpdateStore):
|
||||||
|
@ -465,31 +490,6 @@ class RegistrationStore(RegistrationWorkerStore,
|
||||||
|
|
||||||
defer.returnValue(res if res else False)
|
defer.returnValue(res if res else False)
|
||||||
|
|
||||||
@cachedInlineCallbacks()
|
|
||||||
def is_support_user(self, user_id):
|
|
||||||
"""Determines if the user is of type UserTypes.SUPPORT
|
|
||||||
|
|
||||||
Args:
|
|
||||||
user_id (str): user id to test
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
Deferred[bool]: True if user is of type UserTypes.SUPPORT
|
|
||||||
"""
|
|
||||||
res = yield self.runInteraction(
|
|
||||||
"is_support_user", self.is_support_user_txn, user_id
|
|
||||||
)
|
|
||||||
defer.returnValue(res)
|
|
||||||
|
|
||||||
def is_support_user_txn(self, txn, user_id):
|
|
||||||
res = self._simple_select_one_onecol_txn(
|
|
||||||
txn=txn,
|
|
||||||
table="users",
|
|
||||||
keyvalues={"name": user_id},
|
|
||||||
retcol="user_type",
|
|
||||||
allow_none=True,
|
|
||||||
)
|
|
||||||
return True if res == UserTypes.SUPPORT else False
|
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def user_add_threepid(self, user_id, medium, address, validated_at, added_at):
|
def user_add_threepid(self, user_id, medium, address, validated_at, added_at):
|
||||||
yield self._simple_upsert("user_threepids", {
|
yield self._simple_upsert("user_threepids", {
|
||||||
|
|
Loading…
Reference in a new issue