Files
brewman/brewman/schemas/auth.py
T
tanshu 6dbab6442f Renamed groups to roles in the frontend
Working:
 Account
 Cost Centre
 Employee
 Product Group
 Product
 Role
 User
 Client
2020-05-12 01:44:57 +05:30

109 lines
1.9 KiB
Python

import uuid
from typing import List, Optional
from datetime import datetime
from pydantic import BaseModel
def to_camel(string: str) -> str:
first, *others = string.split("_")
return "".join([first] + [word.capitalize() for word in others])
class ClientIn(BaseModel):
name: str
enabled: bool
otp: Optional[int]
class Client(ClientIn):
id_: uuid.UUID
code: int
creation_date: datetime
class LoginHistory(BaseModel):
id_: uuid.UUID
user_id: uuid.UUID
client_id: uuid.UUID
date: datetime
class Config:
fields = {"id_": "id"}
anystr_strip_whitespace = True
alias_generator = to_camel
class PermissionItem(BaseModel):
id_: uuid.UUID
name: str
enabled: bool
class Config:
fields = {"id_": "id"}
class RoleIn(BaseModel):
name: str
permissions: List[PermissionItem]
class Config:
fields = {"id_": "id"}
anystr_strip_whitespace = True
class Role(RoleIn):
id_: uuid.UUID
class RoleList(BaseModel):
id_: uuid.UUID
name: str
permissions: List[str]
class Config:
fields = {"id_": "id"}
anystr_strip_whitespace = True
class RoleItem(BaseModel):
id_: uuid.UUID
name: str
enabled: bool
class Config:
fields = {"id_": "id"}
class UserIn(BaseModel):
name: str
password: str
locked_out: bool
roles: List[RoleItem]
class Config:
fields = {"id_": "id"}
anystr_strip_whitespace = True
alias_generator = to_camel
class User(UserIn):
id_: uuid.UUID
class UserList(BaseModel):
id_: uuid.UUID
name: str
roles: List[str]
class Config:
fields = {"id_": "id"}
anystr_strip_whitespace = True
class UserToken(BaseModel):
id_: uuid.UUID
name: str
locked_out: bool = None
password: str
permissions: List[str]