mirror of
https://github.com/zulip/zulip.git
synced 2025-11-02 13:03:29 +00:00
settings: Add backend code for using user email_address_visibility setting.
This commits update the code to use user-level email_address_visibility setting instead of realm-level to set or update the value of UserProfile.email field and to send the emails to clients. Major changes are - - UserProfile.email field is set while creating the user according to RealmUserDefault.email_address_visbility. - UserProfile.email field is updated according to change in the setting. - 'email_address_visibility' is added to person objects in user add event and in avatar change event. - client_gravatar can be different for different users when computing avatar_url for messages and user objects since email available to clients is dependent on user-level setting. - For bots, email_address_visibility is set to EVERYONE while creating them irrespective of realm-default value. - Test changes are basically setting user-level setting instead of realm setting and modifying the checks accordingly.
This commit is contained in:
@@ -9,7 +9,7 @@ from django.test import override_settings
|
||||
from zulip_bots.custom_exceptions import ConfigValidationError
|
||||
|
||||
from zerver.actions.bots import do_change_bot_owner
|
||||
from zerver.actions.realm_settings import do_set_realm_property
|
||||
from zerver.actions.realm_settings import do_set_realm_user_default_setting
|
||||
from zerver.actions.streams import do_change_stream_permission
|
||||
from zerver.actions.users import do_change_can_create_users, do_change_user_role, do_deactivate_user
|
||||
from zerver.lib.bot_config import ConfigError, get_bot_config
|
||||
@@ -19,6 +19,7 @@ from zerver.lib.test_classes import UploadSerializeMixin, ZulipTestCase
|
||||
from zerver.lib.test_helpers import avatar_disk_path, get_test_image_file
|
||||
from zerver.models import (
|
||||
Realm,
|
||||
RealmUserDefault,
|
||||
Service,
|
||||
UserProfile,
|
||||
get_bot_services,
|
||||
@@ -318,10 +319,11 @@ class BotTest(ZulipTestCase, UploadSerializeMixin):
|
||||
# Test that we don't mangle the email field with
|
||||
# email_address_visibility limited to admins
|
||||
user = self.example_user("hamlet")
|
||||
do_set_realm_property(
|
||||
user.realm,
|
||||
realm_user_default = RealmUserDefault.objects.get(realm=user.realm)
|
||||
do_set_realm_user_default_setting(
|
||||
realm_user_default,
|
||||
"email_address_visibility",
|
||||
Realm.EMAIL_ADDRESS_VISIBILITY_ADMINS,
|
||||
RealmUserDefault.EMAIL_ADDRESS_VISIBILITY_ADMINS,
|
||||
acting_user=None,
|
||||
)
|
||||
user.refresh_from_db()
|
||||
|
||||
Reference in New Issue
Block a user