Skip to content

Instantly share code, notes, and snippets.

@mdornseif
Created September 16, 2010 20:14
Show Gist options
  • Save mdornseif/583086 to your computer and use it in GitHub Desktop.
Save mdornseif/583086 to your computer and use it in GitHub Desktop.
#!/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