mirror of
https://github.com/zulip/zulip.git
synced 2025-11-11 09:27:43 +00:00
Fixes part of #19397, but I'm leaving that open since we'll want to add an option to rotate all API keys for the target users.
36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
from argparse import ArgumentParser
|
|
from typing import Any
|
|
|
|
from zerver.lib.management import ZulipBaseCommand
|
|
from zerver.lib.sessions import (
|
|
delete_all_deactivated_user_sessions,
|
|
delete_all_user_sessions,
|
|
delete_realm_user_sessions,
|
|
)
|
|
|
|
|
|
class Command(ZulipBaseCommand):
|
|
help = """\
|
|
Log out all users from active browser sessions.
|
|
|
|
Does not disable API keys, and thus will not log users out of the
|
|
mobile apps.
|
|
"""
|
|
|
|
def add_arguments(self, parser: ArgumentParser) -> None:
|
|
parser.add_argument(
|
|
"--deactivated-only",
|
|
action="store_true",
|
|
help="Only log out all users who are deactivated",
|
|
)
|
|
self.add_realm_args(parser, help="Only log out all users in a particular realm")
|
|
|
|
def handle(self, *args: Any, **options: Any) -> None:
|
|
realm = self.get_realm(options)
|
|
if realm:
|
|
delete_realm_user_sessions(realm)
|
|
elif options["deactivated_only"]:
|
|
delete_all_deactivated_user_sessions()
|
|
else:
|
|
delete_all_user_sessions()
|