feat: 缓存列表,监控,性能监控添加按钮级权限控制

This commit is contained in:
2025-02-22 23:46:00 +08:00
parent 75a163910d
commit 5be35d8231
3 changed files with 51 additions and 12 deletions

View File

@@ -12,7 +12,7 @@ from fastapi.responses import JSONResponse
from annotation.auth import Auth
from annotation.log import Log
from config.constant import BusinessType
from config.constant import BusinessType, RedisKeyConfig
from controller.login import LoginController
from models import Permission
from schemas.common import BaseResponse
@@ -53,6 +53,14 @@ async def add_permission(request: Request, params: AddPermissionParams):
hidden_tag=params.hidden_tag,
)
if permission:
# 更新用户信息缓存
userInfos = await request.app.state.redis.keys(f'{RedisKeyConfig.USER_INFO.key}*')
if userInfos:
await request.app.state.redis.delete(*userInfos)
# 更新用户路由缓存
userRoutes = await request.app.state.redis.keys(f'{RedisKeyConfig.USER_ROUTES.key}*')
if userRoutes:
await request.app.state.redis.delete(*userRoutes)
return Response.success(msg="新增权限成功!")
else:
return Response.error(msg="新增权限失败!")
@@ -66,6 +74,14 @@ async def delete_permission(request: Request, id: str = Path(description="权限
if permission := await Permission.get_or_none(id=id, del_flag=1):
permission.del_flag = 0
await permission.save()
# 更新用户信息缓存
userInfos = await request.app.state.redis.keys(f'{RedisKeyConfig.USER_INFO.key}*')
if userInfos:
await request.app.state.redis.delete(*userInfos)
# 更新用户路由缓存
userRoutes = await request.app.state.redis.keys(f'{RedisKeyConfig.USER_ROUTES.key}*')
if userRoutes:
await request.app.state.redis.delete(*userRoutes)
return Response.success(msg="删除权限成功!")
else:
return Response.error(msg="删除权限失败,权限不存在!")
@@ -99,6 +115,14 @@ async def update_permission(request: Request, params: AddPermissionParams, id: s
permission.fixed_tag = params.fixed_tag
permission.hidden_tag = params.hidden_tag
await permission.save()
# 更新用户信息缓存
userInfos = await request.app.state.redis.keys(f'{RedisKeyConfig.USER_INFO.key}*')
if userInfos:
await request.app.state.redis.delete(*userInfos)
# 更新用户路由缓存
userRoutes = await request.app.state.redis.keys(f'{RedisKeyConfig.USER_ROUTES.key}*')
if userRoutes:
await request.app.state.redis.delete(*userRoutes)
return Response.success(msg="更新权限成功!")
else:
return Response.error(msg="更新权限失败,权限不存在!")