first commit
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
from typing import List
|
||||
|
||||
from app.core.crud import CRUDBase
|
||||
from app.models.admin import Api, Menu, Role
|
||||
from app.schemas.roles import RoleCreate, RoleUpdate
|
||||
|
||||
|
||||
class RoleController(CRUDBase[Role, RoleCreate, RoleUpdate]):
|
||||
def __init__(self):
|
||||
super().__init__(model=Role)
|
||||
|
||||
async def is_exist(self, name: str) -> bool:
|
||||
return await self.model.filter(name=name).exists()
|
||||
|
||||
async def update_roles(self, role: Role, menu_ids: List[int], api_infos: List[dict]) -> None:
|
||||
await role.menus.clear()
|
||||
for menu_id in menu_ids:
|
||||
menu_obj = await Menu.filter(id=menu_id).first()
|
||||
await role.menus.add(menu_obj)
|
||||
|
||||
await role.apis.clear()
|
||||
for item in api_infos:
|
||||
api_obj = await Api.filter(path=item.get("path"), method=item.get("method")).first()
|
||||
await role.apis.add(api_obj)
|
||||
|
||||
|
||||
role_controller = RoleController()
|
||||
Reference in New Issue
Block a user