sso
This commit is contained in:
63
backend/schemas.py
Normal file
63
backend/schemas.py
Normal file
@@ -0,0 +1,63 @@
|
||||
from pydantic import BaseModel, EmailStr
|
||||
from typing import List, Optional
|
||||
from datetime import datetime
|
||||
|
||||
# User Schemas
|
||||
class UserBase(BaseModel):
|
||||
username: str
|
||||
email: EmailStr
|
||||
is_active: Optional[bool] = True
|
||||
is_admin: Optional[bool] = False
|
||||
|
||||
class UserCreate(UserBase):
|
||||
password: str
|
||||
|
||||
class UserUpdate(BaseModel):
|
||||
username: Optional[str] = None
|
||||
email: Optional[EmailStr] = None
|
||||
password: Optional[str] = None
|
||||
is_active: Optional[bool] = None
|
||||
is_admin: Optional[bool] = None
|
||||
|
||||
class UserOut(UserBase):
|
||||
id: int
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
class Config:
|
||||
orm_mode = True
|
||||
|
||||
# Application Schemas
|
||||
class ApplicationBase(BaseModel):
|
||||
name: str
|
||||
url: str
|
||||
|
||||
class ApplicationCreate(ApplicationBase):
|
||||
pass
|
||||
|
||||
class ApplicationOut(ApplicationBase):
|
||||
id: int
|
||||
api_key: str
|
||||
created_at: datetime
|
||||
|
||||
class Config:
|
||||
orm_mode = True
|
||||
|
||||
# Token Schema
|
||||
class Token(BaseModel):
|
||||
access_token: str
|
||||
token_type: str
|
||||
|
||||
class TokenData(BaseModel):
|
||||
username: Optional[str] = None
|
||||
|
||||
# SSO Verification Schema
|
||||
class SSOVerifyRequest(BaseModel):
|
||||
username: str
|
||||
password: str
|
||||
api_key: str
|
||||
|
||||
class SSOVerifyResponse(BaseModel):
|
||||
authorized: bool
|
||||
message: str
|
||||
user: Optional[UserOut] = None
|
||||
Reference in New Issue
Block a user