Created
September 16, 2010 20:14
-
-
Save mdornseif/583086 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# c.klein: Django tool for pro-active bug fixing and support: | |
# find out to which user a session is bound. | |
from django.core.management import setup_environ | |
import settings | |
setup_environ(settings) | |
from django.contrib.sessions.models import Session | |
from django.contrib.auth.models import User | |
from django.utils.termcolors import colorize | |
import sys | |
def blame(session_id): | |
"""Extract user id from session and display username.""" | |
try: | |
session = Session.objects.get(pk=session_id) | |
except Session.DoesNotExist: | |
sys.stderr.write("Hey, I know who it is, it's %s!\n" % colorize('YOU', fg='red')) | |
return | |
try: | |
user_id = session.get_decoded()['_auth_user_id'] | |
user = User.objects.get(pk=user_id) | |
sys.stderr.write("Session is bound to user %s (%s)\n" % (colorize(user.get_full_name(), fg='green'), colorize(user.email, fg='green'))) | |
except KeyError: | |
sys.stderr.write('No user id in session data\n') | |
except User.DoesNotExist: | |
sys.stderr.write('User from session data does not exist\n') | |
return user | |
if __name__ == "__main__": | |
if len(sys.argv) > 1: | |
for session_id in sys.argv[1:]: | |
blame(session_id) | |
else: | |
session_id = raw_input('Session ID:') | |
blame(session_id) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment