diff options
author | Will Hunt <will@half-shot.uk> | 2019-08-28 16:31:40 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-28 16:31:40 +0100 |
commit | c8fa620d7adb2da0638b80c62c2b695f2732191d (patch) | |
tree | 892a3f4e9d762454a3e3c31dda71fde0d76476e9 | |
parent | Let synctl use a config directory. (#5904) (diff) | |
parent | Removing entry for 5903 (diff) | |
download | synapse-c8fa620d7adb2da0638b80c62c2b695f2732191d.tar.xz |
Merge pull request #5902 from matrix-org/hs/exempt-support-users-from-consent
Exempt support users from consent
-rw-r--r-- | changelog.d/5902.feature | 1 | ||||
-rw-r--r-- | synapse/api/constants.py | 3 | ||||
-rw-r--r-- | synapse/handlers/message.py | 5 | ||||
-rw-r--r-- | synapse/storage/registration.py | 1 | ||||
-rw-r--r-- | tests/storage/test_registration.py | 1 |
5 files changed, 9 insertions, 2 deletions
diff --git a/changelog.d/5902.feature b/changelog.d/5902.feature new file mode 100644 index 0000000000..0660f65cfa --- /dev/null +++ b/changelog.d/5902.feature @@ -0,0 +1 @@ +Users with the type of "support" or "bot" are no longer required to consent. \ No newline at end of file diff --git a/synapse/api/constants.py b/synapse/api/constants.py index 3ffde0d7fc..f29bce560c 100644 --- a/synapse/api/constants.py +++ b/synapse/api/constants.py @@ -122,7 +122,8 @@ class UserTypes(object): """ SUPPORT = "support" - ALL_USER_TYPES = (SUPPORT,) + BOT = "bot" + ALL_USER_TYPES = (SUPPORT, BOT) class RelationTypes(object): diff --git a/synapse/handlers/message.py b/synapse/handlers/message.py index a5e23c4caf..111f7c7e2f 100644 --- a/synapse/handlers/message.py +++ b/synapse/handlers/message.py @@ -24,7 +24,7 @@ from twisted.internet import defer from twisted.internet.defer import succeed from synapse import event_auth -from synapse.api.constants import EventTypes, Membership, RelationTypes +from synapse.api.constants import EventTypes, Membership, RelationTypes, UserTypes from synapse.api.errors import ( AuthError, Codes, @@ -469,6 +469,9 @@ class EventCreationHandler(object): u = yield self.store.get_user_by_id(user_id) assert u is not None + if u["user_type"] in (UserTypes.SUPPORT, UserTypes.BOT): + # support and bot users are not required to consent + return if u["appservice_id"] is not None: # users registered by an appservice are exempt return diff --git a/synapse/storage/registration.py b/synapse/storage/registration.py index 9027b917c1..3f50324253 100644 --- a/synapse/storage/registration.py +++ b/synapse/storage/registration.py @@ -56,6 +56,7 @@ class RegistrationWorkerStore(SQLBaseStore): "consent_server_notice_sent", "appservice_id", "creation_ts", + "user_type", ], allow_none=True, desc="get_user_by_id", diff --git a/tests/storage/test_registration.py b/tests/storage/test_registration.py index 0253c4ac05..4578cc3b60 100644 --- a/tests/storage/test_registration.py +++ b/tests/storage/test_registration.py @@ -49,6 +49,7 @@ class RegistrationStoreTestCase(unittest.TestCase): "consent_server_notice_sent": None, "appservice_id": None, "creation_ts": 1000, + "user_type": None, }, (yield self.store.get_user_by_id(self.user_id)), ) |