feat: 权限管理添加按钮级权限控制
This commit is contained in:
@@ -10,6 +10,7 @@ from typing import Optional
|
|||||||
from fastapi import APIRouter, Depends, Path, Query, Request
|
from fastapi import APIRouter, Depends, Path, Query, Request
|
||||||
from fastapi.responses import JSONResponse
|
from fastapi.responses import JSONResponse
|
||||||
|
|
||||||
|
from annotation.auth import Auth
|
||||||
from annotation.log import Log
|
from annotation.log import Log
|
||||||
from config.constant import BusinessType
|
from config.constant import BusinessType
|
||||||
from controller.login import LoginController
|
from controller.login import LoginController
|
||||||
@@ -26,6 +27,7 @@ permissionAPI = APIRouter(
|
|||||||
|
|
||||||
@permissionAPI.post("/add", response_model=BaseResponse, response_class=JSONResponse, summary="新增权限")
|
@permissionAPI.post("/add", response_model=BaseResponse, response_class=JSONResponse, summary="新增权限")
|
||||||
@Log(title="新增权限", business_type=BusinessType.INSERT)
|
@Log(title="新增权限", business_type=BusinessType.INSERT)
|
||||||
|
@Auth(permission_list=["permission:btn:add"])
|
||||||
async def add_permission(request: Request, params: AddPermissionParams):
|
async def add_permission(request: Request, params: AddPermissionParams):
|
||||||
permission = await Permission.create(
|
permission = await Permission.create(
|
||||||
name=params.name,
|
name=params.name,
|
||||||
@@ -59,9 +61,11 @@ async def add_permission(request: Request, params: AddPermissionParams):
|
|||||||
@permissionAPI.delete("/delete/{id}", response_model=BaseResponse, response_class=JSONResponse, summary="删除权限")
|
@permissionAPI.delete("/delete/{id}", response_model=BaseResponse, response_class=JSONResponse, summary="删除权限")
|
||||||
@permissionAPI.post("/delete/{id}", response_model=BaseResponse, response_class=JSONResponse, summary="删除权限")
|
@permissionAPI.post("/delete/{id}", response_model=BaseResponse, response_class=JSONResponse, summary="删除权限")
|
||||||
@Log(title="删除权限", business_type=BusinessType.DELETE)
|
@Log(title="删除权限", business_type=BusinessType.DELETE)
|
||||||
|
@Auth(permission_list=["permission:btn:delete"])
|
||||||
async def delete_permission(request: Request, id: str = Path(description="权限ID")):
|
async def delete_permission(request: Request, id: str = Path(description="权限ID")):
|
||||||
if permission := await Permission.get_or_none(id=id):
|
if permission := await Permission.get_or_none(id=id, del_flag=1):
|
||||||
await permission.delete()
|
permission.del_flag = 0
|
||||||
|
await permission.save()
|
||||||
return Response.success(msg="删除权限成功!")
|
return Response.success(msg="删除权限成功!")
|
||||||
else:
|
else:
|
||||||
return Response.error(msg="删除权限失败,权限不存在!")
|
return Response.error(msg="删除权限失败,权限不存在!")
|
||||||
@@ -70,8 +74,9 @@ async def delete_permission(request: Request, id: str = Path(description="权限
|
|||||||
@permissionAPI.put("/update/{id}", response_model=BaseResponse, response_class=JSONResponse, summary="更新权限")
|
@permissionAPI.put("/update/{id}", response_model=BaseResponse, response_class=JSONResponse, summary="更新权限")
|
||||||
@permissionAPI.post("/update/{id}", response_model=BaseResponse, response_class=JSONResponse, summary="更新权限")
|
@permissionAPI.post("/update/{id}", response_model=BaseResponse, response_class=JSONResponse, summary="更新权限")
|
||||||
@Log(title="更新权限", business_type=BusinessType.UPDATE)
|
@Log(title="更新权限", business_type=BusinessType.UPDATE)
|
||||||
|
@Auth(permission_list=["permission:btn:update"])
|
||||||
async def update_permission(request: Request, params: AddPermissionParams, id: str = Path(description="权限ID"), ):
|
async def update_permission(request: Request, params: AddPermissionParams, id: str = Path(description="权限ID"), ):
|
||||||
if permission := await Permission.get_or_none(id=id):
|
if permission := await Permission.get_or_none(id=id, del_flag=1):
|
||||||
permission.name = params.name
|
permission.name = params.name
|
||||||
permission.parent_id = params.parent_id
|
permission.parent_id = params.parent_id
|
||||||
permission.path = params.path
|
permission.path = params.path
|
||||||
@@ -102,8 +107,9 @@ async def update_permission(request: Request, params: AddPermissionParams, id: s
|
|||||||
@permissionAPI.get("/info/{id}", response_model=GetPermissionInfoResponse, response_class=JSONResponse,
|
@permissionAPI.get("/info/{id}", response_model=GetPermissionInfoResponse, response_class=JSONResponse,
|
||||||
summary="查询权限详情")
|
summary="查询权限详情")
|
||||||
@Log(title="查询权限详情", business_type=BusinessType.SELECT)
|
@Log(title="查询权限详情", business_type=BusinessType.SELECT)
|
||||||
|
@Auth(permission_list=["permission:btn:info"])
|
||||||
async def get_permission(request: Request, id: str = Path(description="权限ID")):
|
async def get_permission(request: Request, id: str = Path(description="权限ID")):
|
||||||
if permission := await Permission.get_or_none(permission_id=id):
|
if permission := await Permission.get_or_none(permission_id=id, del_flag=1):
|
||||||
permission = await permission.first().values(
|
permission = await permission.first().values(
|
||||||
id="id",
|
id="id",
|
||||||
create_by="create_by",
|
create_by="create_by",
|
||||||
@@ -140,6 +146,7 @@ async def get_permission(request: Request, id: str = Path(description="权限ID"
|
|||||||
@permissionAPI.get("/list", response_model=GetPermissionListResponse, response_class=JSONResponse,
|
@permissionAPI.get("/list", response_model=GetPermissionListResponse, response_class=JSONResponse,
|
||||||
summary="查询权限列表")
|
summary="查询权限列表")
|
||||||
@Log(title="查询权限列表", business_type=BusinessType.SELECT)
|
@Log(title="查询权限列表", business_type=BusinessType.SELECT)
|
||||||
|
@Auth(permission_list=["permission:btn:list"])
|
||||||
async def get_permission_list(
|
async def get_permission_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
page: int = Query(default=1, description="当前页码"),
|
page: int = Query(default=1, description="当前页码"),
|
||||||
@@ -191,8 +198,8 @@ async def get_permission_list(
|
|||||||
"hidden_tag": hiddenTag
|
"hidden_tag": hiddenTag
|
||||||
}.items() if v
|
}.items() if v
|
||||||
}
|
}
|
||||||
total = await Permission.filter(**filterArgs).count()
|
total = await Permission.filter(**filterArgs, del_flag=1).count()
|
||||||
result = await Permission.filter(**filterArgs).offset((page - 1) * pageSize).limit(pageSize).order_by(
|
result = await Permission.filter(**filterArgs, del_flag=1).offset((page - 1) * pageSize).limit(pageSize).order_by(
|
||||||
'rank').values(
|
'rank').values(
|
||||||
id="id",
|
id="id",
|
||||||
create_by="create_by",
|
create_by="create_by",
|
||||||
|
|||||||
Reference in New Issue
Block a user