aboutsummaryrefslogtreecommitdiff
path: root/api/util/check_password_reqs.py
diff options
context:
space:
mode:
Diffstat (limited to 'api/util/check_password_reqs.py')
-rw-r--r--api/util/check_password_reqs.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/api/util/check_password_reqs.py b/api/util/check_password_reqs.py
new file mode 100644
index 0000000..dcb9bf8
--- /dev/null
+++ b/api/util/check_password_reqs.py
@@ -0,0 +1,26 @@
+from fastapi import HTTPException, status
+
+
+def check_password_reqs(password: str):
+ """
+ Make sure the entered password meets the security requirements:
+ 1. At least 8 characters
+ 2. At least one digit
+ 3. At least one uppercase letter
+ """
+ if len(password) < 8:
+ raise HTTPException(
+ status_code=status.HTTP_400_BAD_REQUEST,
+ detail="Password must be at least 8 characters",
+ )
+ if not any(char.isdigit() for char in password):
+ raise HTTPException(
+ status_code=status.HTTP_400_BAD_REQUEST,
+ detail="Password must contain at least one digit",
+ )
+ if not any(char.isupper() for char in password):
+ raise HTTPException(
+ status_code=status.HTTP_400_BAD_REQUEST,
+ detail="Password must contain at least one uppercase letter",
+ )
+ return