aboutsummaryrefslogtreecommitdiff
path: root/app/util/check_password_reqs.py
diff options
context:
space:
mode:
authorParker <contact@pkrm.dev>2024-11-05 20:36:09 -0600
committerParker <contact@pkrm.dev>2024-11-05 20:36:09 -0600
commite944df3d7d431b5bd88c2c235501a355ea1ba6ab (patch)
tree283a28cb77f2439d20ba00869de15cf65c2c450a /app/util/check_password_reqs.py
parent6f7e810916fd2de39d451886bbe18167e1784315 (diff)
Fix auth and organization/standards
Diffstat (limited to 'app/util/check_password_reqs.py')
-rw-r--r--app/util/check_password_reqs.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/app/util/check_password_reqs.py b/app/util/check_password_reqs.py
new file mode 100644
index 0000000..dcb9bf8
--- /dev/null
+++ b/app/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