Skip to content

Force all users to logout

Chandra Y edited this page Jun 26, 2024 · 1 revision
  1. Connect to portal_django (core_portal_django, if you are on local dev) docker exec -it portal_django /bin/bash
  2. attach to shell python3 manage.py shell
  3. run
from django.contrib.sessions.models import Session
from django.contrib.auth.models import User
from django.utils import timezone

sessions = Session.objects.filter(expire_date__gte=timezone.now())
for session in sessions:
    data = session.get_decoded()
    user_id = data.get('_auth_user_id')
    if user_id:
        try:
            user = User.objects.get(pk=user_id)
            print(f"Expiry Date: {session.expire_date}, Username: {user.username}")
            print('  Deleting session object')
            session.delete()
        except User.DoesNotExist:
            print(f"Username: Unknown (user_id: {user_id})")
    else:
        print(f"Expiry Date: {session.expire_date}, can't find user")
Clone this wiki locally