diff --git a/backend/tests/test_instance_fields.py b/backend/tests/test_instance_fields.py index 03f0949..e30cdab 100644 --- a/backend/tests/test_instance_fields.py +++ b/backend/tests/test_instance_fields.py @@ -7,9 +7,9 @@ from tests.conftest import auth_header async def test_create_instance_with_full_fields(client, admin_token): """创建数据源:完整字段""" res = await client.post("/api/v1/instances", json={ - "name": "pro-cex-rds-只读库", + "name": "prod-mysql-只读库", "db_type": "mysql", - "host": "pro-rds-ro.51aipay.com", + "host": "mysql.example.com", "port": 3306, "username": "admin", "password": "secret123", diff --git a/frontend/src/components/PageHeader.tsx b/frontend/src/components/PageHeader.tsx index 2786ded..1038e13 100644 --- a/frontend/src/components/PageHeader.tsx +++ b/frontend/src/components/PageHeader.tsx @@ -1,4 +1,4 @@ -import { useAuth } from '@/hooks/useAuth'; +import { useAuth, actionPermissionMap } from '@/hooks/useAuth'; import type { ReactNode } from 'react'; interface ActionConfig { @@ -17,9 +17,11 @@ interface PageHeaderProps { } export default function PageHeader({ title, description, action, secondaryAction, children }: PageHeaderProps) { - const { hasPermission } = useAuth(); + const { user, hasPermission } = useAuth(); - const canShowAction = !action?.permission || hasPermission(action.permission); + const canShowAction = !action?.permission + || hasPermission(action.permission) + || (actionPermissionMap[action.permission] || []).includes(user.role); return (
diff --git a/frontend/src/pages/InstancePage.tsx b/frontend/src/pages/InstancePage.tsx index 0d3cc91..187a680 100644 --- a/frontend/src/pages/InstancePage.tsx +++ b/frontend/src/pages/InstancePage.tsx @@ -408,13 +408,13 @@ function CreateInstanceForm({ defaultType, onCancel, onCreated }: { defaultType:
- setName(e.target.value)} className={inputCls} placeholder="pro-cex-rds-只读库" /> + setName(e.target.value)} className={inputCls} placeholder="例如:prod-mysql-只读库" />
- setHost(e.target.value)} className={inputCls} placeholder="pro-rds-ro.51aipay.com" /> + setHost(e.target.value)} className={inputCls} placeholder="例如:mysql.example.com" />