Explorar o código

move auth_with_username_or_email, check_password, encode_password to account/utils.py

ignatz %!s(int64=4) %!d(string=hai) anos
pai
achega
c0056164a6
Modificáronse 1 ficheiros con 25 adicións e 0 borrados
  1. 25 0
      account/utils.py

+ 25 - 0
account/utils.py

@@ -0,0 +1,25 @@
+from string import ascii_letters, digits, printable
+
+from account.models import User
+
+
+def auth_with_username_or_email(username, password):
+    password = encode_password(password)
+    if '@' in username:
+        user = User.objects.get(email=username, password=password)
+    else:
+        user = User.objects.get(username=username, password=password)
+    return user
+
+
+def check_password(password):
+    if set(password).isdisjoint(ascii_letters) and set(password).isdisjoint(digits):
+        return False
+    return set(password).issubset(printable) and len(password) >= 8
+
+
+def encode_password(password):
+    import hashlib
+    md5 = hashlib.md5()
+    md5.update(password.encode())
+    return md5.hexdigest()