Skip to content

Commit 052547c

Browse files
committed
feat: Permission gating for system menus
1 parent 2e3ce3d commit 052547c

31 files changed

Lines changed: 536 additions & 114 deletions

‎ui/src/permission/core/data.ts‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -138,12 +138,12 @@ export const PermissionConstants = {
138138
// ==================== RESOURCE_PERMISSION ====================
139139
APPLICATION_RESOURCE_PERMISSION_READ: p(Group.RESOURCE_PERMISSION, Group.APPLICATION_RESOURCE_PERMISSION, Operate.READ, 0),
140140
APPLICATION_RESOURCE_PERMISSION_EDIT: p(Group.RESOURCE_PERMISSION, Group.APPLICATION_RESOURCE_PERMISSION, Operate.EDIT, 1),
141-
KNOWLEDGE_RESOURCE_PERMISSION_READ: p(Group.RESOURCE_PERMISSION, Group.KNOWLEDGE_RESOURCE_PERMISSION, Operate.READ, 0),
142-
KNOWLEDGE_RESOURCE_PERMISSION_EDIT: p(Group.RESOURCE_PERMISSION, Group.KNOWLEDGE_RESOURCE_PERMISSION, Operate.EDIT, 1),
143-
TOOL_RESOURCE_PERMISSION_READ: p(Group.RESOURCE_PERMISSION, Group.TOOL_RESOURCE_PERMISSION, Operate.READ, 0),
144-
TOOL_RESOURCE_PERMISSION_EDIT: p(Group.RESOURCE_PERMISSION, Group.TOOL_RESOURCE_PERMISSION, Operate.EDIT, 1),
145-
MODEL_RESOURCE_PERMISSION_READ: p(Group.RESOURCE_PERMISSION, Group.MODEL_RESOURCE_PERMISSION, Operate.READ, 0),
146-
MODEL_RESOURCE_PERMISSION_EDIT: p(Group.RESOURCE_PERMISSION, Group.MODEL_RESOURCE_PERMISSION, Operate.EDIT, 1),
141+
KNOWLEDGE_RESOURCE_PERMISSION_READ: p(Group.RESOURCE_PERMISSION, Group.KNOWLEDGE_RESOURCE_PERMISSION, Operate.READ, 2),
142+
KNOWLEDGE_RESOURCE_PERMISSION_EDIT: p(Group.RESOURCE_PERMISSION, Group.KNOWLEDGE_RESOURCE_PERMISSION, Operate.EDIT, 3),
143+
TOOL_RESOURCE_PERMISSION_READ: p(Group.RESOURCE_PERMISSION, Group.TOOL_RESOURCE_PERMISSION, Operate.READ, 4),
144+
TOOL_RESOURCE_PERMISSION_EDIT: p(Group.RESOURCE_PERMISSION, Group.TOOL_RESOURCE_PERMISSION, Operate.EDIT, 5),
145+
MODEL_RESOURCE_PERMISSION_READ: p(Group.RESOURCE_PERMISSION, Group.MODEL_RESOURCE_PERMISSION, Operate.READ, 6),
146+
MODEL_RESOURCE_PERMISSION_EDIT: p(Group.RESOURCE_PERMISSION, Group.MODEL_RESOURCE_PERMISSION, Operate.EDIT, 7),
147147

148148
// ==================== EMAIL_SETTING ====================
149149
EMAIL_SETTING_READ: p(Group.EMAIL_SETTING, Group.EMAIL_SETTING, Operate.READ, 0),

‎ui/src/permission/modules/application/index.ts‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,8 @@
33
import workspace from './workspace'
44
import system from './system'
55

6-
export default { workspace, system }
6+
export default { workspace,
7+
/**
8+
* 系统「应用」权限
9+
* */
10+
system }

‎ui/src/permission/modules/application/system.ts‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
*/
55

66
import { canSys } from '../../policy'
7-
import { PermissionConstants as P } from '../../core'
7+
import { PermissionConstants as P,hasEdition} from '../../core'
8+
import { Edition } from '@/permission/core/common'
89

910
const system = {
1011
// —— 系统页不提供的操作 ——
@@ -53,7 +54,10 @@ const system = {
5354
chatLogAddKnowledge: () => canSys(P.RESOURCE_APPLICATION_CHAT_LOG_ADD_KNOWLEDGE),
5455

5556
// —— 组合:跳转/进入应用 ——
56-
jumpRead: () => canSys(P.RESOURCE_APPLICATION_OVERVIEW_READ) || canSys(P.RESOURCE_APPLICATION_READ),
57+
/**
58+
* 系统「应用资源管理」(系统 > 资源管理 > 应用)进入权限
59+
* */
60+
jumpRead: () => canSys(P.RESOURCE_APPLICATION_READ) && hasEdition(Edition.PE),
5761
}
5862

5963
export default system

‎ui/src/permission/modules/index.ts‎

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,25 @@ import model from './model'
1212
import system from './system'
1313
import trigger from './trigger'
1414

15-
export default { application, knowledge, tool, model, trigger, system }
15+
export default {
16+
/**
17+
*「应用」在各场景下的按钮权限
18+
* */
19+
application,
20+
/**
21+
* 「知识库」各场景按钮权限
22+
* */
23+
knowledge,
24+
/**
25+
* 「工具」各场景按钮权限
26+
* */
27+
tool,
28+
/**
29+
* 「模型」各场景按钮权限
30+
* */
31+
model,
32+
trigger,
33+
/**
34+
* 「系统全局」按钮权限
35+
* */
36+
system }

‎ui/src/permission/modules/knowledge/index.ts‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,12 @@ import workspace from './workspace'
44
import system from './system'
55
import share from './share'
66

7-
export default { workspace, system, share }
7+
export default { workspace,
8+
/**
9+
* 系统「知识库」权限
10+
* */
11+
system,
12+
/**
13+
* 系统「共享知识库」权限
14+
* */
15+
share }

‎ui/src/permission/modules/knowledge/share.ts‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
/** 系统「共享知识库」按钮权限(系统 > 共享 > 知识库)。全局判定,无 id。 */
22

33
import { canSys } from '../../policy'
4-
import { PermissionConstants as P } from '../../core'
4+
import { PermissionConstants as P,hasEdition} from '../../core'
5+
import { Edition } from '@/permission/core/common'
56

67
const share = {
78
// —— 共享页不提供 ——
@@ -74,7 +75,10 @@ const share = {
7475
knowledgeChatUserEdit: () => canSys(P.SHARED_KNOWLEDGE_CHAT_USER_EDIT),
7576

7677
// —— 组合:进入知识库 ——
77-
jumpRead: () => canSys(P.SHARED_KNOWLEDGE_DOCUMENT_READ) || canSys(P.SHARED_KNOWLEDGE_WORKFLOW_READ),
78+
/**
79+
* 系统「共享知识库」(系统 > 共享 > 知识库)进入权限
80+
* */
81+
jumpRead: () => canSys(P.SHARED_KNOWLEDGE_WORKFLOW_READ) && hasEdition(Edition.PE),
7882
}
7983

8084
export default share

‎ui/src/permission/modules/knowledge/system.ts‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
/** 系统「知识库资源管理」按钮权限(系统 > 资源管理 > 知识库)。全局判定,无 id。 */
22

33
import { canSys } from '../../policy'
4-
import { PermissionConstants as P } from '../../core'
4+
import { PermissionConstants as P,hasEdition} from '../../core'
5+
import { Edition } from '@/permission/core/common'
56

67
const system = {
78
// —— 系统页不提供 ——
@@ -75,7 +76,10 @@ const system = {
7576
knowledgeChatUserEdit: () => canSys(P.RESOURCE_KNOWLEDGE_CHAT_USER_EDIT),
7677

7778
// —— 组合:进入知识库 ——
78-
jumpRead: () => canSys(P.RESOURCE_KNOWLEDGE_DOCUMENT_READ),
79+
/**
80+
* 系统「知识库资源管理」(系统 > 资源管理 > 知识库)进入权限
81+
* */
82+
jumpRead: () => canSys(P.RESOURCE_KNOWLEDGE_DOCUMENT_READ) && hasEdition(Edition.PE),
7983
}
8084

8185
export default system

‎ui/src/permission/modules/model/index.ts‎

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,14 @@ import workspace from './workspace'
44
import system from './system'
55
import share from './share'
66

7-
export default { workspace, system, share }
7+
export default {
8+
workspace,
9+
/**
10+
* 系统「模型」权限
11+
* */
12+
system,
13+
/**
14+
* 系统「共享模型」权限
15+
* */
16+
share,
17+
}

‎ui/src/permission/modules/model/share.ts‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
/** 系统「共享模型」按钮权限(系统 > 共享 > 模型)。全局判定,无 id。 */
22

33
import { canSys } from '../../policy'
4-
import { PermissionConstants as P } from '../../core'
4+
import { PermissionConstants as P,hasEdition} from '../../core'
5+
import { Edition } from '@/permission/core/common'
56

67
const share = {
78
// —— 共享页不提供 ——
@@ -16,6 +17,11 @@ const share = {
1617
folderAuth: () => false,
1718
folderManage: () => false,
1819

20+
/**
21+
* 系统「共享模型」(系统 > 共享 > 模型)只读权限
22+
*/
23+
read: () => canSys(P.SHARED_MODEL_READ) && hasEdition(Edition.PE),
24+
1925
// —— 模型资源 ——
2026
create: () => canSys(P.SHARED_MODEL_CREATE),
2127
modify: () => canSys(P.SHARED_MODEL_EDIT),

‎ui/src/permission/modules/model/system.ts‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
/** 系统「模型资源管理」按钮权限(系统 > 资源管理 > 模型)。全局判定,无 id。 */
22

33
import { canSys } from '../../policy'
4-
import { PermissionConstants as P } from '../../core'
4+
import { PermissionConstants as P,hasEdition} from '../../core'
5+
import { Edition } from '@/permission/core/common'
56

67
const system = {
78
// —— 系统页不提供 ——
@@ -16,6 +17,10 @@ const system = {
1617
folderAuth: () => false,
1718
folderManage: () => false,
1819

20+
/**
21+
* 系统「模型资源管理」(系统 > 资源管理 > 模型)只读权限
22+
* */
23+
read: () => canSys(P.RESOURCE_MODEL_READ) && hasEdition(Edition.PE),
1924
isShare: () => canSys(P.MODEL_READ),
2025

2126
// —— 模型资源 ——

0 commit comments

Comments
 (0)