diff options
author | dklimpel <5740567+dklimpel@users.noreply.github.com> | 2020-03-08 14:49:33 +0100 |
---|---|---|
committer | dklimpel <5740567+dklimpel@users.noreply.github.com> | 2020-03-08 14:49:33 +0100 |
commit | 1f5f3ae8b1c5db96d36ac7c104f13553bc4283da (patch) | |
tree | 545fad0735839ab55e1633b8626cc795acfafb14 /synapse/handlers/profile.py | |
parent | Always return a deferred from `get_current_state_deltas`. (#7019) (diff) | |
download | synapse-1f5f3ae8b1c5db96d36ac7c104f13553bc4283da.tar.xz |
Add options to disable setting profile info for prevent changes.
Diffstat (limited to 'synapse/handlers/profile.py')
-rw-r--r-- | synapse/handlers/profile.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/synapse/handlers/profile.py b/synapse/handlers/profile.py index 50ce0c585b..fb7e84f3b8 100644 --- a/synapse/handlers/profile.py +++ b/synapse/handlers/profile.py @@ -157,6 +157,11 @@ 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 self.hs.config.disable_set_displayname: + profile = yield self.store.get_profileinfo(target_user.localpart) + if profile.display_name: + raise SynapseError(400, "Changing displayname is disabled on this server") + if len(new_displayname) > MAX_DISPLAYNAME_LEN: raise SynapseError( 400, "Displayname is too long (max %i)" % (MAX_DISPLAYNAME_LEN,) @@ -218,6 +223,11 @@ 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 self.hs.config.disable_set_avatar_url: + profile = yield self.store.get_profileinfo(target_user.localpart) + if profile.avatar_url: + raise SynapseError(400, "Changing avatar url is disabled on this server") + if len(new_avatar_url) > MAX_AVATAR_URL_LEN: raise SynapseError( 400, "Avatar URL is too long (max %i)" % (MAX_AVATAR_URL_LEN,) |