code_junkie

How to lookup django session for a particular user?

Nov 11th, 2011
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. from django.contrib.sessions.models import Session
  2. from django.contrib.auth.models import User
  3.  
  4. session_key = '8cae76c505f15432b48c8292a7dd0e54'
  5.  
  6. session = Session.objects.get(session_key=session_key)
  7. uid = session.get_decoded().get('_auth_user_id')
  8. user = User.objects.get(pk=uid)
  9.  
  10. print user.username, user.get_full_name(), user.email
  11.  
  12. class Session(models.Model):
  13.  
  14. ...
  15.  
  16. user_id = models.IntegerField(_('user_id'), null=True)
  17.  
  18. ...
  19.  
  20. def save(self, *args, **kwargs):
  21. user_id = self.get_decoded().get('_auth_user_id')
  22. if ( user_id != None ):
  23. self.user_id = user_id
  24.  
  25. # Call the "real" save() method.
  26. super(Session, self).save(*args, **kwargs)
  27.  
  28. # On login, destroy all prev sessions
  29. # This disallows multiple logins from different browsers
  30. dbSessions = Session.objects.filter( user_id = request.user.id )
  31. for index, dbSession in enumerate( dbSessions ):
  32. if ( dbSession.session_key != request.session.session_key ):
  33. dbSession.delete()
Add Comment
Please, Sign In to add comment