Force all users to logout - TACC/Core-Portal GitHub Wiki

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