Spaces:
Sleeping
Sleeping
from pydantic import BaseModel, Field, EmailStr, field_validator | |
import re | |
class SUser(BaseModel): | |
email: EmailStr | |
password: str = Field(default=..., min_length=8, max_length=32) | |
def validate_password(cls, password_to_validate): | |
""" | |
Validates the strength of the password. | |
The password **must** contain: | |
- At least one digit | |
- At least one special character | |
- At least one uppercase character | |
- At least one lowercase character | |
""" | |
if not re.search(r"\d", password_to_validate): | |
raise ValueError("Password must contain at least one number.") | |
if not re.search(r"[!@#$%^&*()_+\-=\[\]{};:\'\",.<>?`~]", password_to_validate): | |
raise ValueError("Password must contain at least one special symbol.") | |
if not re.search(r"[A-Z]", password_to_validate): | |
raise ValueError("Password must contain at least one uppercase letter.") | |
if not re.search(r"[a-z]", password_to_validate): | |
raise ValueError("Password must contain at least one lowercase letter.") | |
return password_to_validate | |