feat: 缓存列表,监控,性能监控添加按钮级权限控制
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
from fastapi import APIRouter, Depends, Path, Request
|
||||
from fastapi.responses import JSONResponse
|
||||
|
||||
from annotation.auth import Auth
|
||||
from annotation.log import Log
|
||||
from config.constant import BusinessType, RedisKeyConfig
|
||||
from controller.login import LoginController
|
||||
@@ -26,6 +27,7 @@ cacheAPI = APIRouter(
|
||||
@cacheAPI.get("/monitor", response_class=JSONResponse, response_model=GetCacheMonitorResponse,
|
||||
summary="获取缓存监控信息")
|
||||
@Log(title="获取缓存监控信息", business_type=BusinessType.SELECT)
|
||||
@Auth(permission_list=['cache:btn:infoList'])
|
||||
async def get_cache_info(request: Request):
|
||||
info = await request.app.state.redis.info()
|
||||
db_size = await request.app.state.redis.dbsize()
|
||||
@@ -45,6 +47,7 @@ async def get_cache_info(request: Request):
|
||||
@cacheAPI.get("/names", response_class=JSONResponse, response_model=GetCacheInfoResponse,
|
||||
summary="获取缓存名称列表")
|
||||
@Log(title="获取缓存名称列表", business_type=BusinessType.SELECT)
|
||||
@Auth(permission_list=['cache:btn:list'])
|
||||
async def get_cache_names(request: Request):
|
||||
name_list = []
|
||||
for key_config in RedisKeyConfig:
|
||||
@@ -62,6 +65,7 @@ async def get_cache_names(request: Request):
|
||||
@cacheAPI.get("/keys/{cacheName}", response_class=JSONResponse, response_model=GetCacheKeysListResponse,
|
||||
summary="获取缓存键名列表")
|
||||
@Log(title="获取缓存键名列表", business_type=BusinessType.SELECT)
|
||||
@Auth(permission_list=['cache:btn:list'])
|
||||
async def get_cache_keys(request: Request, cacheName: str = Path(description="缓存名称")):
|
||||
cache_keys = await request.app.state.redis.keys(f'{cacheName}*')
|
||||
cache_key_list = [key.split(':', 1)[1] for key in cache_keys if key.startswith(f'{cacheName}:')]
|
||||
@@ -71,6 +75,7 @@ async def get_cache_keys(request: Request, cacheName: str = Path(description="
|
||||
@cacheAPI.get("/info/{cacheName}/{cacheKey}", response_class=JSONResponse, response_model=GetCacheInfoResponse,
|
||||
summary="获取缓存信息")
|
||||
@Log(title="获取缓存信息", business_type=BusinessType.SELECT)
|
||||
@Auth(permission_list=['cache:btn:info'])
|
||||
async def get_cache_info(request: Request, cacheName: str = Path(description="缓存名称"),
|
||||
cacheKey: str = Path(description="缓存键名")):
|
||||
cache_value = await request.app.state.redis.get(f'{cacheName}:{cacheKey}')
|
||||
@@ -88,6 +93,7 @@ async def get_cache_info(request: Request, cacheName: str = Path(description="
|
||||
@cacheAPI.post("/cacheName/{name}", response_class=JSONResponse, response_model=BaseResponse,
|
||||
summary="通过键名删除缓存")
|
||||
@Log(title="通过键名删除缓存", business_type=BusinessType.DELETE)
|
||||
@Auth(permission_list=['cache:btn:delete'])
|
||||
async def delete_cache(request: Request, name: str = Path(description="缓存名称")):
|
||||
cache_keys = await request.app.state.redis.keys(f'{name}*')
|
||||
if cache_keys:
|
||||
@@ -99,6 +105,7 @@ async def delete_cache(request: Request, name: str = Path(description="缓存名
|
||||
summary="通过键值删除缓存")
|
||||
@cacheAPI.post("/cacheKey/{key}", response_class=JSONResponse, response_model=BaseResponse, summary="通过键值删除缓存")
|
||||
@Log(title="通过键值删除缓存", business_type=BusinessType.DELETE)
|
||||
@Auth(permission_list=['cache:btn:delete'])
|
||||
async def delete_cache_key(request: Request, key: str = Path(description="缓存键名")):
|
||||
cache_keys = await request.app.state.redis.keys(f'*{key}')
|
||||
if cache_keys:
|
||||
@@ -109,6 +116,7 @@ async def delete_cache_key(request: Request, key: str = Path(description="缓存
|
||||
@cacheAPI.delete("/clearAll", response_class=JSONResponse, response_model=BaseResponse, summary="删除所有缓存")
|
||||
@cacheAPI.post("/clearAll", response_class=JSONResponse, response_model=BaseResponse, summary="删除所有缓存")
|
||||
@Log(title="删除所有缓存", business_type=BusinessType.DELETE)
|
||||
@Auth(permission_list=['cache:btn:delete'])
|
||||
async def delete_all_cache(request: Request):
|
||||
cache_keys = await request.app.state.redis.keys()
|
||||
if cache_keys:
|
||||
|
||||
Reference in New Issue
Block a user