Compare commits

..

No commits in common. "79d1bbb43fd9e5c1044424dde454d9df0eabfb48" and "9b6dcd946bba15e53d02224ea4ca1fb84cd55139" have entirely different histories.

8 changed files with 14 additions and 25 deletions

View File

@ -18,7 +18,7 @@
- **细粒度权限控制**:实现按钮和接口级别的权限控制,确保不同用户或角色在界面操作和接口访问时具有不同的权限限制。 - **细粒度权限控制**:实现按钮和接口级别的权限控制,确保不同用户或角色在界面操作和接口访问时具有不同的权限限制。
### 在线预览 ### 在线预览
- [http://47.111.145.81:3000](http://47.111.145.81:3000) - http://vue-fastapi-admin.com
- username: admin - username: admin
- password: 123456 - password: 123456

View File

@ -1,6 +1,6 @@
from fastapi import APIRouter from fastapi import APIRouter
from app.core.dependency import DependPermission from app.core.dependency import DependPermisson
from .apis import apis_router from .apis import apis_router
from .auditlog import auditlog_router from .auditlog import auditlog_router
@ -13,9 +13,9 @@ from .users import users_router
v1_router = APIRouter() v1_router = APIRouter()
v1_router.include_router(base_router, prefix="/base") v1_router.include_router(base_router, prefix="/base")
v1_router.include_router(users_router, prefix="/user", dependencies=[DependPermission]) v1_router.include_router(users_router, prefix="/user", dependencies=[DependPermisson])
v1_router.include_router(roles_router, prefix="/role", dependencies=[DependPermission]) v1_router.include_router(roles_router, prefix="/role", dependencies=[DependPermisson])
v1_router.include_router(menus_router, prefix="/menu", dependencies=[DependPermission]) v1_router.include_router(menus_router, prefix="/menu", dependencies=[DependPermisson])
v1_router.include_router(apis_router, prefix="/api", dependencies=[DependPermission]) v1_router.include_router(apis_router, prefix="/api", dependencies=[DependPermisson])
v1_router.include_router(depts_router, prefix="/dept", dependencies=[DependPermission]) v1_router.include_router(depts_router, prefix="/dept", dependencies=[DependPermisson])
v1_router.include_router(auditlog_router, prefix="/auditlog", dependencies=[DependPermission]) v1_router.include_router(auditlog_router, prefix="/auditlog", dependencies=[DependPermisson])

View File

@ -1,4 +1,3 @@
from datetime import datetime
from fastapi import APIRouter, Query from fastapi import APIRouter, Query
from tortoise.expressions import Q from tortoise.expressions import Q
@ -17,10 +16,9 @@ async def get_audit_log_list(
module: str = Query("", description="功能模块"), module: str = Query("", description="功能模块"),
method: str = Query("", description="请求方法"), method: str = Query("", description="请求方法"),
summary: str = Query("", description="接口描述"), summary: str = Query("", description="接口描述"),
path: str = Query("", description="请求路径"),
status: int = Query(None, description="状态码"), status: int = Query(None, description="状态码"),
start_time: datetime = Query("", description="开始时间"), start_time: str = Query("", description="开始时间"),
end_time: datetime = Query("", description="结束时间"), end_time: str = Query("", description="结束时间"),
): ):
q = Q() q = Q()
if username: if username:
@ -31,8 +29,6 @@ async def get_audit_log_list(
q &= Q(method__icontains=method) q &= Q(method__icontains=method)
if summary: if summary:
q &= Q(summary__icontains=summary) q &= Q(summary__icontains=summary)
if path:
q &= Q(path__icontains=path)
if status: if status:
q &= Q(status=status) q &= Q(status=status)
if start_time and end_time: if start_time and end_time:

View File

@ -10,7 +10,7 @@ from app.schemas.base import Fail, Success
from app.schemas.login import * from app.schemas.login import *
from app.schemas.users import UpdatePassword from app.schemas.users import UpdatePassword
from app.settings import settings from app.settings import settings
from app.utils.jwt_utils import create_access_token from app.utils.jwt import create_access_token
from app.utils.password import get_password_hash, verify_password from app.utils.password import get_password_hash, verify_password
router = APIRouter() router = APIRouter()

View File

@ -50,4 +50,4 @@ class PermissionControl:
DependAuth = Depends(AuthControl.is_authed) DependAuth = Depends(AuthControl.is_authed)
DependPermission = Depends(PermissionControl.has_permission) DependPermisson = Depends(PermissionControl.has_permission)

View File

@ -68,14 +68,7 @@ class HttpAuditLogMiddleware(BaseHTTPMiddleware):
except json.JSONDecodeError: except json.JSONDecodeError:
try: try:
body = await request.form() body = await request.form()
# args.update(body) args.update(body)
for k, v in body.items():
if hasattr(v, "filename"): # 文件上传行为
args[k] = v.filename
elif isinstance(v, list) and v and hasattr(v[0], "filename"):
args[k] = [file.filename for file in v]
else:
args[k] = v
except Exception: except Exception:
pass pass

View File

@ -87,7 +87,7 @@ async function handleLogin() {
} }
try { try {
loading.value = true loading.value = true
$message.loading(t('views.login.message_verifying')) $message.loading(t('views.login.message_login_success'))
const res = await api.login({ username, password: password.toString() }) const res = await api.login({ username, password: password.toString() })
$message.success(t('views.login.message_login_success')) $message.success(t('views.login.message_login_success'))
setToken(res.data.access_token) setToken(res.data.access_token)