diff options
author | Brendan Abolivier <babolivier@matrix.org> | 2020-03-10 22:23:01 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-10 22:23:01 +0000 |
commit | 54dd28621b070ca67de9f773fe9a89e1f4dc19da (patch) | |
tree | dd1dc083e8b9c0ef80fb630c41cddc305efc7d38 /synapse/handlers/profile.py | |
parent | Merge pull request #7058 from matrix-org/babolivier/saml_error_html (diff) | |
parent | Update sample_config.yaml (diff) | |
download | synapse-54dd28621b070ca67de9f773fe9a89e1f4dc19da.tar.xz |
Add options to disable setting profile info for prevent changes. (#7053)
Diffstat (limited to 'synapse/handlers/profile.py')
-rw-r--r-- | synapse/handlers/profile.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/synapse/handlers/profile.py b/synapse/handlers/profile.py index 50ce0c585b..6aa1c0f5e0 100644 --- a/synapse/handlers/profile.py +++ b/synapse/handlers/profile.py @@ -157,6 +157,15 @@ class BaseProfileHandler(BaseHandler): if not by_admin and target_user != requester.user: raise AuthError(400, "Cannot set another user's displayname") + if not by_admin and not self.hs.config.enable_set_displayname: + profile = yield self.store.get_profileinfo(target_user.localpart) + if profile.display_name: + raise SynapseError( + 400, + "Changing display name is disabled on this server", + Codes.FORBIDDEN, + ) + if len(new_displayname) > MAX_DISPLAYNAME_LEN: raise SynapseError( 400, "Displayname is too long (max %i)" % (MAX_DISPLAYNAME_LEN,) @@ -218,6 +227,13 @@ class BaseProfileHandler(BaseHandler): if not by_admin and target_user != requester.user: raise AuthError(400, "Cannot set another user's avatar_url") + if not by_admin and not self.hs.config.enable_set_avatar_url: + profile = yield self.store.get_profileinfo(target_user.localpart) + if profile.avatar_url: + raise SynapseError( + 400, "Changing avatar is disabled on this server", Codes.FORBIDDEN + ) + if len(new_avatar_url) > MAX_AVATAR_URL_LEN: raise SynapseError( 400, "Avatar URL is too long (max %i)" % (MAX_AVATAR_URL_LEN,) |