code_spécifique_watcha
dklimpel 5 years ago
parent 1f5f3ae8b1
commit fb078f921b
  1. 1
      changelog.d/7053.feature
  2. 8
      docs/sample_config.yaml
  3. 4
      synapse/config/registration.py
  4. 10
      synapse/handlers/profile.py

@ -0,0 +1 @@
Add options to disable setting profile info for prevent changes.

@ -1057,6 +1057,14 @@ account_threepid_delegates:
#email: https://example.com # Delegate email sending to example.com #email: https://example.com # Delegate email sending to example.com
#msisdn: http://localhost:8090 # Delegate SMS sending to this local process #msisdn: http://localhost:8090 # Delegate SMS sending to this local process
# If enabled, don't let users set their own display names/avatars
# other than for the very first time (unless they are a server admin).
# Useful when provisioning users based on the contents of a 3rd party
# directory and to avoid ambiguities.
#
#disable_set_displayname: False
#disable_set_avatar_url: False
# Users who register on this homeserver will automatically be joined # Users who register on this homeserver will automatically be joined
# to these rooms # to these rooms
# #

@ -338,8 +338,8 @@ class RegistrationConfig(Config):
# Useful when provisioning users based on the contents of a 3rd party # Useful when provisioning users based on the contents of a 3rd party
# directory and to avoid ambiguities. # directory and to avoid ambiguities.
# #
# disable_set_displayname: False #disable_set_displayname: False
# disable_set_avatar_url: False #disable_set_avatar_url: False
# Users who register on this homeserver will automatically be joined # Users who register on this homeserver will automatically be joined
# to these rooms # to these rooms

@ -160,7 +160,10 @@ class BaseProfileHandler(BaseHandler):
if not by_admin and self.hs.config.disable_set_displayname: if not by_admin and self.hs.config.disable_set_displayname:
profile = yield self.store.get_profileinfo(target_user.localpart) profile = yield self.store.get_profileinfo(target_user.localpart)
if profile.display_name: if profile.display_name:
raise SynapseError(400, "Changing displayname is disabled on this server") raise SynapseError(
400,
"Changing displayname is disabled on this server"
)
if len(new_displayname) > MAX_DISPLAYNAME_LEN: if len(new_displayname) > MAX_DISPLAYNAME_LEN:
raise SynapseError( raise SynapseError(
@ -226,7 +229,10 @@ class BaseProfileHandler(BaseHandler):
if not by_admin and self.hs.config.disable_set_avatar_url: if not by_admin and self.hs.config.disable_set_avatar_url:
profile = yield self.store.get_profileinfo(target_user.localpart) profile = yield self.store.get_profileinfo(target_user.localpart)
if profile.avatar_url: if profile.avatar_url:
raise SynapseError(400, "Changing avatar url is disabled on this server") raise SynapseError(
400,
"Changing avatar url is disabled on this server"
)
if len(new_avatar_url) > MAX_AVATAR_URL_LEN: if len(new_avatar_url) > MAX_AVATAR_URL_LEN:
raise SynapseError( raise SynapseError(

Loading…
Cancel
Save