aboutsummaryrefslogtreecommitdiff
path: root/app/util/check_password_reqs.py
blob: dcb9bf8a38490cbcfb4889d00b1968d7bec70c3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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