From e1fbf6dddb4cb30cd51ed86091b4b9ee3f6cd3de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yago=20Gonz=C3=A1lez?= Date: Fri, 10 Aug 2018 21:03:32 +0200 Subject: [PATCH] actions: Make do_regenerate_api_key return the new key. This way, the new API key can be fetched without needing to read it from the UserProfile object. --- zerver/lib/actions.py | 9 ++++++--- zerver/views/user_settings.py | 4 ++-- zerver/views/users.py | 4 ++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/zerver/lib/actions.py b/zerver/lib/actions.py index 0f46d9b901..c0da4f3cf2 100644 --- a/zerver/lib/actions.py +++ b/zerver/lib/actions.py @@ -3267,9 +3267,10 @@ def do_change_tos_version(user_profile: UserProfile, tos_version: str) -> None: event_type=RealmAuditLog.USER_TOS_VERSION_CHANGED, event_time=event_time) -def do_regenerate_api_key(user_profile: UserProfile, acting_user: UserProfile) -> None: +def do_regenerate_api_key(user_profile: UserProfile, acting_user: UserProfile) -> str: old_api_key = user_profile.api_key - user_profile.api_key = generate_api_key() + new_api_key = generate_api_key() + user_profile.api_key = new_api_key user_profile.save(update_fields=["api_key"]) # We need to explicitly delete the old API key from our caches, @@ -3288,10 +3289,12 @@ def do_regenerate_api_key(user_profile: UserProfile, acting_user: UserProfile) - op='update', bot=dict(email=user_profile.email, user_id=user_profile.id, - api_key=user_profile.api_key, + api_key=new_api_key, )), bot_owner_user_ids(user_profile)) + return new_api_key + def do_change_avatar_fields(user_profile: UserProfile, avatar_source: str) -> None: user_profile.avatar_source = avatar_source user_profile.avatar_version += 1 diff --git a/zerver/views/user_settings.py b/zerver/views/user_settings.py index 7bfa40d4ee..1ed3c7f4c9 100644 --- a/zerver/views/user_settings.py +++ b/zerver/views/user_settings.py @@ -228,9 +228,9 @@ def delete_avatar_backend(request: HttpRequest, user_profile: UserProfile) -> Ht # a bot regenerating its own API key. @has_request_variables def regenerate_api_key(request: HttpRequest, user_profile: UserProfile) -> HttpResponse: - do_regenerate_api_key(user_profile, user_profile) + new_api_key = do_regenerate_api_key(user_profile, user_profile) json_result = dict( - api_key = user_profile.api_key + api_key = new_api_key ) return json_success(json_result) diff --git a/zerver/views/users.py b/zerver/views/users.py index e3ff4b34d5..96c943378b 100644 --- a/zerver/views/users.py +++ b/zerver/views/users.py @@ -250,9 +250,9 @@ def patch_bot_backend( def regenerate_bot_api_key(request: HttpRequest, user_profile: UserProfile, bot_id: int) -> HttpResponse: bot = access_bot_by_id(user_profile, bot_id) - do_regenerate_api_key(bot, user_profile) + new_api_key = do_regenerate_api_key(bot, user_profile) json_result = dict( - api_key = bot.api_key + api_key=new_api_key ) return json_success(json_result)