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.
This commit is contained in:
Yago González 2018-08-10 21:03:32 +02:00 committed by Tim Abbott
parent fbc2de157e
commit e1fbf6dddb
3 changed files with 10 additions and 7 deletions

View File

@ -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

View File

@ -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)

View File

@ -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)