summary refs log tree commit diff
path: root/synapse
diff options
context:
space:
mode:
authorAurélien Grimpard <aurelien@grimpard.net>2023-09-06 20:32:24 +0200
committerGitHub <noreply@github.com>2023-09-06 14:32:24 -0400
commitfe69e7f617199f51eb97f510a0a934fdcf02fbad (patch)
tree0768d0737a291cd5e71a0c02034ec6a54a0ca753 /synapse
parentMerge remote-tracking branch 'origin/release-v1.92' into develop (diff)
downloadsynapse-fe69e7f617199f51eb97f510a0a934fdcf02fbad.tar.xz
Handle "registration_enabled" parameter for CAS (#16262)
Similar to OIDC, CAS providers can now disable registration such
that only existing users are able to login via SSO.
Diffstat (limited to 'synapse')
-rw-r--r--synapse/config/cas.py3
-rw-r--r--synapse/handlers/cas.py2
2 files changed, 5 insertions, 0 deletions
diff --git a/synapse/config/cas.py b/synapse/config/cas.py
index 6e2d9addbf..bbc8f43073 100644
--- a/synapse/config/cas.py
+++ b/synapse/config/cas.py
@@ -57,6 +57,8 @@ class CasConfig(Config):
                 required_attributes
             )
 
+            self.cas_enable_registration = cas_config.get("enable_registration", True)
+
             self.idp_name = cas_config.get("idp_name", "CAS")
             self.idp_icon = cas_config.get("idp_icon")
             self.idp_brand = cas_config.get("idp_brand")
@@ -67,6 +69,7 @@ class CasConfig(Config):
             self.cas_protocol_version = None
             self.cas_displayname_attribute = None
             self.cas_required_attributes = []
+            self.cas_enable_registration = False
 
 
 # CAS uses a legacy required attributes mapping, not the one provided by
diff --git a/synapse/handlers/cas.py b/synapse/handlers/cas.py
index a850545453..b5b8b9bd35 100644
--- a/synapse/handlers/cas.py
+++ b/synapse/handlers/cas.py
@@ -70,6 +70,7 @@ class CasHandler:
         self._cas_protocol_version = hs.config.cas.cas_protocol_version
         self._cas_displayname_attribute = hs.config.cas.cas_displayname_attribute
         self._cas_required_attributes = hs.config.cas.cas_required_attributes
+        self._cas_enable_registration = hs.config.cas.cas_enable_registration
 
         self._http_client = hs.get_proxied_http_client()
 
@@ -395,4 +396,5 @@ class CasHandler:
             client_redirect_url,
             cas_response_to_user_attributes,
             grandfather_existing_users,
+            registration_enabled=self._cas_enable_registration,
         )