users: Move check_change_full_name to actions.py.

This avoids an import loop in the next commit, and better matches our
usual code structure.
This commit is contained in:
Tim Abbott
2017-11-15 17:29:53 -08:00
parent 774380dcb8
commit c7a975e4df
4 changed files with 16 additions and 15 deletions

View File

@@ -49,6 +49,7 @@ from zerver.lib.topic_mutes import (
add_topic_mute, add_topic_mute,
remove_topic_mute, remove_topic_mute,
) )
from zerver.lib.users import check_full_name
from zerver.lib.user_groups import create_user_group from zerver.lib.user_groups import create_user_group
from zerver.models import Realm, RealmEmoji, Stream, UserProfile, UserActivity, \ from zerver.models import Realm, RealmEmoji, Stream, UserProfile, UserActivity, \
RealmDomain, \ RealmDomain, \
@@ -2498,6 +2499,16 @@ def do_change_full_name(user_profile, full_name, acting_user):
send_event(dict(type='realm_bot', op='update', bot=payload), send_event(dict(type='realm_bot', op='update', bot=payload),
bot_owner_user_ids(user_profile)) bot_owner_user_ids(user_profile))
def check_change_full_name(user_profile, full_name_raw, acting_user):
# type: (UserProfile, Text, UserProfile) -> Text
"""Verifies that the user's proposed full name is valid. The caller
is responsible for checking check permissions. Returns the new
full name, which may differ from what was passed in (because this
function strips whitespace)."""
new_full_name = check_full_name(full_name_raw)
do_change_full_name(user_profile, new_full_name, acting_user)
return new_full_name
def do_change_bot_owner(user_profile, bot_owner, acting_user): def do_change_bot_owner(user_profile, bot_owner, acting_user):
# type: (UserProfile, UserProfile, UserProfile) -> None # type: (UserProfile, UserProfile, UserProfile) -> None
user_profile.bot_owner = bot_owner user_profile.bot_owner = bot_owner

View File

@@ -2,7 +2,6 @@ from typing import List, Text
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from zerver.lib.actions import do_change_full_name
from zerver.lib.request import JsonableError from zerver.lib.request import JsonableError
from zerver.models import UserProfile, Service, Realm, \ from zerver.models import UserProfile, Service, Realm, \
get_user_profile_by_id get_user_profile_by_id
@@ -25,16 +24,6 @@ def check_short_name(short_name_raw):
raise JsonableError(_("Bad name or username")) raise JsonableError(_("Bad name or username"))
return short_name return short_name
def check_change_full_name(user_profile, full_name_raw, acting_user):
# type: (UserProfile, Text, UserProfile) -> Text
"""Verifies that the user's proposed full name is valid. The caller
is responsible for checking check permissions. Returns the new
full name, which may differ from what was passed in (because this
function strips whitespace)."""
new_full_name = check_full_name(full_name_raw)
do_change_full_name(user_profile, new_full_name, acting_user)
return new_full_name
def check_valid_bot_type(bot_type): def check_valid_bot_type(bot_type):
# type: (int) -> None # type: (int) -> None
if bot_type not in UserProfile.ALLOWED_BOT_TYPES: if bot_type not in UserProfile.ALLOWED_BOT_TYPES:

View File

@@ -13,7 +13,8 @@ from zerver.lib.actions import do_change_password, \
do_change_enter_sends, do_change_notification_settings, \ do_change_enter_sends, do_change_notification_settings, \
do_change_default_desktop_notifications, do_change_autoscroll_forever, \ do_change_default_desktop_notifications, do_change_autoscroll_forever, \
do_regenerate_api_key, do_change_avatar_fields, do_set_user_display_setting, \ do_regenerate_api_key, do_change_avatar_fields, do_set_user_display_setting, \
validate_email, do_change_user_email, do_start_email_change_process validate_email, do_change_user_email, do_start_email_change_process, \
check_change_full_name
from zerver.lib.avatar import avatar_url from zerver.lib.avatar import avatar_url
from zerver.lib.send_email import send_email, FromAddress from zerver.lib.send_email import send_email, FromAddress
from zerver.lib.i18n import get_available_language_codes from zerver.lib.i18n import get_available_language_codes
@@ -21,7 +22,6 @@ from zerver.lib.response import json_success, json_error
from zerver.lib.upload import upload_avatar_image from zerver.lib.upload import upload_avatar_image
from zerver.lib.validator import check_bool, check_string from zerver.lib.validator import check_bool, check_string
from zerver.lib.request import JsonableError from zerver.lib.request import JsonableError
from zerver.lib.users import check_change_full_name
from zerver.lib.timezone import get_all_timezones from zerver.lib.timezone import get_all_timezones
from zerver.models import UserProfile, Realm, name_changes_disabled, \ from zerver.models import UserProfile, Realm, name_changes_disabled, \
EmailChangeStatus EmailChangeStatus

View File

@@ -14,7 +14,8 @@ from zerver.forms import CreateUserForm
from zerver.lib.actions import do_change_avatar_fields, do_change_bot_owner, \ from zerver.lib.actions import do_change_avatar_fields, do_change_bot_owner, \
do_change_is_admin, do_change_default_all_public_streams, \ do_change_is_admin, do_change_default_all_public_streams, \
do_change_default_events_register_stream, do_change_default_sending_stream, \ do_change_default_events_register_stream, do_change_default_sending_stream, \
do_create_user, do_deactivate_user, do_reactivate_user, do_regenerate_api_key do_create_user, do_deactivate_user, do_reactivate_user, do_regenerate_api_key, \
check_change_full_name
from zerver.lib.avatar import avatar_url, get_gravatar_url, get_avatar_field from zerver.lib.avatar import avatar_url, get_gravatar_url, get_avatar_field
from zerver.lib.exceptions import JsonableError from zerver.lib.exceptions import JsonableError
from zerver.lib.integrations import EMBEDDED_BOTS from zerver.lib.integrations import EMBEDDED_BOTS
@@ -23,7 +24,7 @@ from zerver.lib.response import json_error, json_success
from zerver.lib.streams import access_stream_by_name from zerver.lib.streams import access_stream_by_name
from zerver.lib.upload import upload_avatar_image from zerver.lib.upload import upload_avatar_image
from zerver.lib.validator import check_bool, check_string, check_int, check_url from zerver.lib.validator import check_bool, check_string, check_int, check_url
from zerver.lib.users import check_valid_bot_type, check_change_full_name, \ from zerver.lib.users import check_valid_bot_type, \
check_full_name, check_short_name, check_valid_interface_type check_full_name, check_short_name, check_valid_interface_type
from zerver.lib.utils import generate_random_token from zerver.lib.utils import generate_random_token
from zerver.models import UserProfile, Stream, Message, email_allowed_for_realm, \ from zerver.models import UserProfile, Stream, Message, email_allowed_for_realm, \