Automated Action 4cfde1a74a Add enhanced authentication features
- Add role-based access control (admin/user roles)
- Implement refresh token functionality
- Add token revocation (logout) capability
- Create admin-only endpoints
- Add role validation middleware
- Update documentation
2025-06-17 02:22:22 +00:00

42 lines
839 B
Python

from typing import Optional
from pydantic import BaseModel, EmailStr
from app.models.user import UserRole
# Shared properties
class UserBase(BaseModel):
email: Optional[EmailStr] = None
is_active: Optional[bool] = True
role: Optional[UserRole] = None
# Properties to receive via API on creation
class UserCreate(UserBase):
email: EmailStr
password: str
role: UserRole = UserRole.USER
# Properties to receive via API on update
class UserUpdate(UserBase):
password: Optional[str] = None
class UserInDBBase(UserBase):
id: Optional[int] = None
role: UserRole = UserRole.USER
class Config:
from_attributes = True
# Additional properties to return via API
class User(UserInDBBase):
pass
# Additional properties stored in DB
class UserInDB(UserInDBBase):
hashed_password: str