Merge pull request #2938 from coreos-inc/joseph.schorr/QS-85/signout-all

Invalidate all session tokens when a user signs out
This commit is contained in:
josephschorr 2017-12-07 13:25:00 -05:00 committed by GitHub
commit 1861d7dee9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 16 additions and 4 deletions

View file

@ -104,8 +104,7 @@ def change_password(user, new_password):
pw_hash = hash_password(new_password)
user.invalid_login_attempts = 0
user.password_hash = pw_hash
user.uuid = str(uuid4())
user.save()
invalidate_all_sessions(user)
# Remove any password required notifications for the user.
notification.delete_notifications_by_kind(user, 'password_required')
@ -593,6 +592,13 @@ def get_user_or_org_by_customer_id(customer_id):
except User.DoesNotExist:
return None
def invalidate_all_sessions(user):
""" Invalidates all existing user sessions by rotating the user's UUID. """
if not user:
return
user.uuid = str(uuid4())
user.save()
def get_matching_user_namespaces(namespace_prefix, username, limit=10):
namespace_search = prefix_search(Namespace.username, namespace_prefix)