The level field is deprecated but remained (#134)

This commit is contained in:
Wu Clan
2023-06-15 17:25:54 +08:00
committed by GitHub
parent 29d5a17190
commit d498969400
11 changed files with 35 additions and 23 deletions
-1
View File
@@ -7,7 +7,6 @@ from fastapi.security import OAuth2PasswordRequestForm
from fastapi_limiter.depends import RateLimiter
from starlette.background import BackgroundTasks
from backend.app.common.casbin_rbac import DependsRBAC
from backend.app.common.jwt import DependsJwtAuth
from backend.app.common.response.response_schema import response_base
from backend.app.schemas.token import GetLoginToken, GetSwaggerToken, GetNewToken
+1
View File
@@ -22,6 +22,7 @@ async def get_dept(pk: int):
@router.get('', summary='获取所有部门展示树', dependencies=[DependsRBAC])
async def get_all_depts(
level: Annotated[int | None, Query()] = None,
name: Annotated[str | None, Query()] = None,
leader: Annotated[str | None, Query()] = None,
phone: Annotated[str | None, Query()] = None,
@@ -124,6 +124,7 @@ def register_exception(app: FastAPI):
else:
import traceback
log.error(f'未知异常: {exc}')
log.error(traceback.format_exc())
return JSONResponse(
-1
View File
@@ -12,7 +12,6 @@ from pydantic import ValidationError
from sqlalchemy.ext.asyncio import AsyncSession
from backend.app.common.exception.errors import AuthorizationError, TokenError
from backend.app.common.log import log
from backend.app.common.redis import redis_client
from backend.app.core.conf import settings
from backend.app.crud.crud_user import UserDao
+7 -4
View File
@@ -36,12 +36,13 @@ class CRUDDept(CRUDBase[Dept, CreateDept, UpdateDept]):
dept = await db.execute(se)
return dept.scalars().all()
async def create(self, db: AsyncSession, obj_in: dict) -> None:
async def create(self, db: AsyncSession, obj_in: dict, user_id: int) -> None:
obj_in.update({'create_user': user_id})
obj = self.model(**obj_in)
db.add(obj)
async def update(self, db: AsyncSession, dept_id: int, obj_in: dict) -> int:
return await self.update_(db, dept_id, obj_in)
async def update(self, db: AsyncSession, dept_id: int, obj_in: dict, user_id: int) -> int:
return await self.update_(db, dept_id, obj_in, user_id=user_id)
async def delete(self, db: AsyncSession, dept_id: int) -> int:
return await self.delete_(db, dept_id, del_flag=1)
@@ -54,7 +55,9 @@ class CRUDDept(CRUDBase[Dept, CreateDept, UpdateDept]):
return user_relation.users
async def get_children(self, db: AsyncSession, dept_id: int) -> Any:
result = await db.execute(select(self.model).where(self.model.id == dept_id))
result = await db.execute(
select(self.model).options(selectinload(self.model.children)).where(self.model.id == dept_id)
)
dept = result.scalars().first()
return dept.children
+4 -3
View File
@@ -38,12 +38,13 @@ class CRUDMenu(CRUDBase[Menu, CreateMenu, UpdateMenu]):
menu = await db.execute(se)
return menu.scalars().all()
async def create(self, db, obj_in: dict) -> None:
async def create(self, db, obj_in: dict, user_id: int) -> None:
obj_in.update({'create_user': user_id})
obj = self.model(**obj_in)
db.add(obj)
async def update(self, db, menu_id: int, obj_in: dict) -> int:
return await self.update_(db, menu_id, obj_in)
async def update(self, db, menu_id: int, obj_in: dict, user_id: int) -> int:
return await self.update_(db, menu_id, obj_in, user_id)
async def delete(self, db, menu_id: int) -> int:
return await self.delete_(db, menu_id)
@@ -47,10 +47,7 @@ class JwtAuthMiddleware(AuthenticationBackend):
raise _AuthenticationError(code=exc.code, msg=exc.detail, headers=exc.headers)
except Exception as e:
log.exception(e)
raise _AuthenticationError(
code=getattr(e, 'code', 500),
msg=getattr(e, 'msg', 'Internal Server Error')
)
raise _AuthenticationError(code=getattr(e, 'code', 500), msg=getattr(e, 'msg', 'Internal Server Error'))
# 请注意,此返回使用非标准模式,所以在认证通过时,将丢失某些标准特性
# 标准返回模式请查看:https://www.starlette.io/authentication/
@@ -100,7 +100,7 @@ class OperaLogMiddleware:
async def execute_request(self, request: Request, send: Send) -> tuple:
# 预置响应信息
code: int = 200
code: str = '200'
msg: str = 'Success'
status: bool = True
err: Any = None
-1
View File
@@ -45,7 +45,6 @@ class UpdateDept(DeptBase):
class GetAllDept(DeptBase):
id: int
level: int
del_flag: bool
create_user: int
update_user: int = None
+10 -4
View File
@@ -33,9 +33,12 @@ class DeptService:
dept = await DeptDao.get_by_name(db, obj.name)
if dept:
raise errors.ForbiddenError(msg='部门名称已存在')
if obj.parent_id:
parent_dept = await DeptDao.get(db, obj.parent_id)
if not parent_dept:
raise errors.NotFoundError(msg='父级部门不存在')
new_obj = obj.dict()
new_obj.update({'level': obj.parent_id + 1 if obj.parent_id else 1, 'create_user': user_id})
await DeptDao.create(db, new_obj)
await DeptDao.create(db, new_obj, user_id)
@staticmethod
async def update(*, pk: int, obj: UpdateDept, user_id: int):
@@ -46,9 +49,12 @@ class DeptService:
if dept.name != obj.name:
if await DeptDao.get_by_name(db, obj.name):
raise errors.ForbiddenError(msg='部门名称已存在')
if obj.parent_id:
parent_dept = await DeptDao.get(db, obj.parent_id)
if not parent_dept:
raise errors.NotFoundError(msg='父级部门不存在')
new_obj = obj.dict()
new_obj.update({'level': obj.parent_id + 1 if obj.parent_id else 1, 'update_user': user_id})
count = await DeptDao.update(db, pk, new_obj)
count = await DeptDao.update(db, pk, new_obj, user_id)
return count
@staticmethod
+10 -4
View File
@@ -41,9 +41,12 @@ class MenuService:
menu = await MenuDao.get_by_name(db, obj.name)
if menu:
raise errors.ForbiddenError(msg='菜单名称已存在')
if obj.parent_id:
parent_menu = await MenuDao.get(db, obj.parent_id)
if not parent_menu:
raise errors.NotFoundError(msg='父级菜单不存在')
new_obj = obj.dict()
new_obj.update({'level': obj.parent_id + 1 if obj.parent_id else 1, 'create_user': user_id})
await MenuDao.create(db, new_obj)
await MenuDao.create(db, new_obj, user_id)
@staticmethod
async def update(*, pk: int, obj: UpdateMenu, user_id: int):
@@ -54,9 +57,12 @@ class MenuService:
if menu.name != obj.name:
if await MenuDao.get_by_name(db, obj.name):
raise errors.ForbiddenError(msg='菜单名称已存在')
if obj.parent_id:
parent_menu = await MenuDao.get(db, obj.parent_id)
if not parent_menu:
raise errors.NotFoundError(msg='父级菜单不存在')
new_obj = obj.dict()
new_obj.update({'level': obj.parent_id + 1 if obj.parent_id else 1, 'update_user': user_id})
count = await MenuDao.update(db, pk, new_obj)
count = await MenuDao.update(db, pk, new_obj, user_id)
return count
@staticmethod