utils.py 710 B

12345678910111213141516171819202122232425
  1. from string import ascii_letters, digits, printable
  2. from account.models import User
  3. def auth_with_username_or_email(username, password):
  4. password = encode_password(password)
  5. if '@' in username:
  6. user = User.objects.get(email=username, password=password)
  7. else:
  8. user = User.objects.get(username=username, password=password)
  9. return user
  10. def check_password(password):
  11. if set(password).isdisjoint(ascii_letters) and set(password).isdisjoint(digits):
  12. return False
  13. return set(password).issubset(printable) and len(password) >= 8
  14. def encode_password(password):
  15. import hashlib
  16. md5 = hashlib.md5()
  17. md5.update(password.encode())
  18. return md5.hexdigest()