summary refs log tree commit diff
path: root/synapse/rest/admin/experimental_features.py
diff options
context:
space:
mode:
authorErik Johnston <erikj@element.io>2024-07-05 13:02:35 +0100
committerGitHub <noreply@github.com>2024-07-05 13:02:35 +0100
commit57538eb4d9fef09f4c3a234d51e34478f45b7917 (patch)
tree14073356b279fed335a5ce57511dfa1dfb9ecadd /synapse/rest/admin/experimental_features.py
parentFix links to MSC3916 (#17397) (diff)
downloadsynapse-57538eb4d9fef09f4c3a234d51e34478f45b7917.tar.xz
Finish up work to allow per-user feature flags (#17392)
Follows on from @H-Shay's great work at
https://github.com/matrix-org/synapse/pull/15344 and MSC4026.

Also enables its use for MSC3881, mainly as an easy but concrete example
of how to use it.
Diffstat (limited to 'synapse/rest/admin/experimental_features.py')
-rw-r--r--synapse/rest/admin/experimental_features.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/synapse/rest/admin/experimental_features.py b/synapse/rest/admin/experimental_features.py

index c5a00c490c..c1559c92f7 100644 --- a/synapse/rest/admin/experimental_features.py +++ b/synapse/rest/admin/experimental_features.py
@@ -31,7 +31,9 @@ from synapse.rest.admin import admin_patterns, assert_requester_is_admin from synapse.types import JsonDict, UserID if TYPE_CHECKING: - from synapse.server import HomeServer + from typing_extensions import assert_never + + from synapse.server import HomeServer, HomeServerConfig class ExperimentalFeature(str, Enum): @@ -39,9 +41,14 @@ class ExperimentalFeature(str, Enum): Currently supported per-user features """ - MSC3026 = "msc3026" MSC3881 = "msc3881" + def is_globally_enabled(self, config: "HomeServerConfig") -> bool: + if self is ExperimentalFeature.MSC3881: + return config.experimental.msc3881_enabled + + assert_never(self) + class ExperimentalFeaturesRestServlet(RestServlet): """