# -*- coding: utf-8 -*- """ When you get an error email from your Django app telling you someone got a server error, it’s not always easy to tell which user had a problem. It might help your debugging to know or you might want to contact the user to tell them you have fixed the problem. """ from optparse import make_option from django.conf import settings from django.contrib import auth from django.contrib.sessions.models import Session from django.core.management.base import BaseCommand class Command(BaseCommand): args = '' help = 'If the session still exists find it and show the related User' option_list = BaseCommand.option_list + ( make_option( '--delete', action='store_true', dest='delete', default=False, help='Delete the Useraccount' ), make_option( '--ban', action='store_true', dest='ban', default=False, help='Ban the Useraccount' ), ) def handle(self, *args, **options): for session_key in args: try: session = Session.objects.get(session_key=session_key) uid = session.get_decoded().get('_auth_user_id') user = auth.get_user_model().objects.get(pk=uid) except Session.DoesNotExist: self.stderr.write('Session "%s" does not exist' % session_key) continue except settings.AUTH_USER_MODEL.DoesNotExist: self.stderr.write( 'Session "%s" has no registed User' % session_key) continue if options['delete']: self.stdout.write('deleting %s' % user.username) user.delete() elif options['ban']: self.stdout.write('banning %s' % user.username) user.is_active = False user.save() else: self.stdout.write("Username: %s" % user.username)