diff options
author | Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | 2018-12-07 14:44:46 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-07 14:44:46 +0100 |
commit | 30da50a5b80e63c05e4b7ca637e3be9dd88dea59 (patch) | |
tree | fd64369bbefb0fc2efc74a953f014747c4cfbe9c /synapse/rest | |
parent | Update the example systemd config to use a virtualenv (#4273) (diff) | |
download | synapse-30da50a5b80e63c05e4b7ca637e3be9dd88dea59.tar.xz |
Initialise user displayname from SAML2 data (#4272)
When we register a new user from SAML2 data, initialise their displayname correctly.
Diffstat (limited to 'synapse/rest')
-rw-r--r-- | synapse/rest/client/v1/login.py | 5 | ||||
-rw-r--r-- | synapse/rest/saml2/response_resource.py | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/synapse/rest/client/v1/login.py b/synapse/rest/client/v1/login.py index b7c5b58b01..e9d3032498 100644 --- a/synapse/rest/client/v1/login.py +++ b/synapse/rest/client/v1/login.py @@ -451,6 +451,7 @@ class SSOAuthHandler(object): @defer.inlineCallbacks def on_successful_auth( self, username, request, client_redirect_url, + user_display_name=None, ): """Called once the user has successfully authenticated with the SSO. @@ -467,6 +468,9 @@ class SSOAuthHandler(object): client_redirect_url (unicode): the redirect_url the client gave us when it first started the process. + user_display_name (unicode|None): if set, and we have to register a new user, + we will set their displayname to this. + Returns: Deferred[none]: Completes once we have handled the request. """ @@ -478,6 +482,7 @@ class SSOAuthHandler(object): yield self._registration_handler.register( localpart=localpart, generate_token=False, + default_display_name=user_display_name, ) ) diff --git a/synapse/rest/saml2/response_resource.py b/synapse/rest/saml2/response_resource.py index ad2ed157b5..69fb77b322 100644 --- a/synapse/rest/saml2/response_resource.py +++ b/synapse/rest/saml2/response_resource.py @@ -66,6 +66,9 @@ class SAML2ResponseResource(Resource): raise CodeMessageException(400, "uid not in SAML2 response") username = saml2_auth.ava["uid"][0] + + displayName = saml2_auth.ava.get("displayName", [None])[0] return self._sso_auth_handler.on_successful_auth( username, request, relay_state, + user_display_name=displayName, ) |