dvirlabs 417b2ef877
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
feat: Add admin user, PIN-based password reset, and profile management
- Auto-create admin user on startup with configurable credentials
- Force password change on first admin login
- PIN-based password reset via email (6-digit code)
- Remove demo account notice from login page
- Add complete profile edit with email, phone, address fields
- Add password change functionality in profile
- Add database migration for new user fields
- Update Helm values with admin and email config
2026-05-07 08:09:30 +03:00

54 lines
1.0 KiB
Python

from pydantic import BaseModel, EmailStr
from datetime import datetime
from typing import Optional
class UserBase(BaseModel):
email: EmailStr
full_name: str
class UserCreate(UserBase):
password: str
class UserUpdate(BaseModel):
full_name: Optional[str] = None
phone: Optional[str] = None
address: Optional[str] = None
city: Optional[str] = None
postal_code: Optional[str] = None
country: Optional[str] = None
email: Optional[EmailStr] = None
class ChangePasswordRequest(BaseModel):
old_password: str
new_password: str
class RequestPinRequest(BaseModel):
email: EmailStr
class ResetPasswordWithPinRequest(BaseModel):
email: EmailStr
pin: str
new_password: str
class UserResponse(UserBase):
id: int
phone: Optional[str]
address: Optional[str]
city: Optional[str]
postal_code: Optional[str]
country: Optional[str]
is_active: bool
is_admin: bool
must_change_password: bool = False
created_at: datetime
class Config:
from_attributes = True