cauth.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #coding=utf-8
  2. import logging
  3. import datetime
  4. import account.password_handle as ph
  5. from django.db.models import Q
  6. import common.error_info as ce
  7. import common.models as cm
  8. logger = logging.getLogger(__name__)
  9. class AccountManage(object):
  10. def authenticate(self,request,account,pwd):
  11. """
  12. @attention: 用户认证
  13. """
  14. user = cm.SysUserInfo.objects.filter(Q(name=account)).first()
  15. if user is not None:
  16. if self.user_can_authenticate(user):
  17. if ph.check_password(pwd, user.password):
  18. return user
  19. else:
  20. raise ce.TipException("账号或密码错误")
  21. else:
  22. raise ce.TipException("账户已停用")
  23. else:
  24. raise ce.TipException("账号或密码错误")
  25. def user_can_authenticate(self, user):
  26. """
  27. @attention: 账户是否已经激活
  28. """
  29. is_active = getattr(user, 'is_active', None)
  30. return is_active == 1
  31. def get_user(self, pk):
  32. """
  33. @attention: 由于在django系统中,每次request都是一个独立的请求,所以每次进入时第一次使用,都会调用该函数
  34. """
  35. try:
  36. user = cm.SysUserInfo.objects.get(pk=pk)
  37. except cm.SysUserInfo.DoesNotExist:
  38. return None
  39. return user