Add management command to logout all users.

This is intended to be used logging out users during our deployment of
the UserProfile merge, but it could be useful for other things too.

(imported from commit bfe896d854f997f7a4d06e5bc0f19ec5b1aa5e69)
This commit is contained in:
Tim Abbott
2013-04-02 12:00:12 -04:00
parent 303e77c07d
commit 3a35c5b00c
2 changed files with 26 additions and 1 deletions

View File

@@ -83,7 +83,7 @@ def delete_user_sessions(user_profile):
if session.get_decoded().get('_auth_user_id') == user_profile.user.id: if session.get_decoded().get('_auth_user_id') == user_profile.user.id:
delete_session(session) delete_session(session)
def delete_realm_sessions(realm): def delete_realm_user_sessions(realm):
realm_user_ids = [u.user.id for u in realm_user_ids = [u.user.id for u in
UserProfile.objects.filter(realm=realm)] UserProfile.objects.filter(realm=realm)]
for session in Session.objects.all(): for session in Session.objects.all():

View File

@@ -0,0 +1,25 @@
from optparse import make_option
from django.core.management.base import BaseCommand
from zephyr.lib.actions import delete_all_user_sessions, \
delete_realm_user_sessions
from zephyr.models import Realm
class Command(BaseCommand):
help = "Log out all users."
option_list = BaseCommand.option_list + (
make_option('--realm',
dest='realm',
action='store',
default=None,
help="Only logout all users in a particular realm"),
)
def handle(self, *args, **options):
if options["realm"]:
realm = Realm.objects.get(domain=options["realm"])
delete_realm_user_sessions(realm)
else:
delete_all_user_sessions()