auth.py 668 B

123456789101112131415161718192021222324252627
  1. from hashlib import md5
  2. from django.contrib import auth as dj_auth
  3. def make_user_admin_token(user):
  4. formula = '%s:%s:%s' % (user.pk, user.email, user.password)
  5. return md5(formula).hexdigest()
  6. def login(request, user):
  7. request.session['misago_admin_token'] = make_user_admin_token(user)
  8. dj_auth.login(request, user)
  9. def logout(request):
  10. pass
  11. def is_admin_session(request):
  12. if request.user.is_anonymous():
  13. return False
  14. if not (request.user.is_staff and request.user.is_superuser):
  15. return False
  16. admin_token = request.session.get('misago_admin_token')
  17. return admin_token == make_user_admin_token(request.user)