Skip to content

Commit 6f87f2b

Browse files
committed
feat: share tool and model permission annotation
1 parent eb92fd2 commit 6f87f2b

8 files changed

Lines changed: 75 additions & 13 deletions

File tree

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,29 @@ const share = {
2222
read: () => canSys(P.SHARED_MODEL_READ) && hasEdition(Edition.EE),
2323

2424
// —— 模型资源 ——
25+
/**
26+
* 系统「共享模型」(系统 > 共享 > 模型) 创建权限
27+
*/
2528
create: () => canSys(P.SHARED_MODEL_CREATE),
29+
/**
30+
* 系统「共享模型」(系统 > 共享 > 模型) 编辑权限
31+
*/
2632
modify: () => canSys(P.SHARED_MODEL_EDIT),
33+
/**
34+
* 系统「共享模型」(系统 > 共享 > 模型)模型参数设置权限
35+
*/
2736
paramSetting: () => canSys(P.SHARED_MODEL_EDIT),
37+
/**
38+
* 系统「共享模型」(系统 > 共享 > 模型)删除权限
39+
*/
2840
delete: () => canSys(P.SHARED_MODEL_DELETE),
41+
/**
42+
* 系统「共享模型」(系统 > 共享 > 模型)查看关联资源权限
43+
*/
2944
relateMap: () => canSys(P.SHARED_MODEL_RELATE_RESOURCE_VIEW),
45+
/**
46+
* 系统「共享模型」(系统 > 共享 > 模型)授权工作空间权限
47+
*/
3048
authToWorkspace: () => canSys(P.SHARED_MODEL_TO_WORKSPACE),
3149
}
3250

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

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,50 @@ const share = {
2727
read: () => canSys(P.SHARED_TOOL_READ) && hasEdition(Edition.EE),
2828

2929
// —— 工具资源 ——
30+
/**
31+
* 系统「共享工具」(系统 > 共享 > 工具)创建权限
32+
*/
3033
create: () => canSys(P.SHARED_TOOL_CREATE),
34+
/**
35+
* 系统「共享工具」(系统 > 共享 > 工具)复制权限
36+
*/
3137
copy: () => canSys(P.SHARED_TOOL_CREATE),
38+
/**
39+
* 系统「共享工具」(系统 > 共享 > 工具)导入权限
40+
*/
3241
import: () => canSys(P.SHARED_TOOL_IMPORT),
42+
/**
43+
* 系统「共享工具」(系统 > 共享 > 工具)编辑权限
44+
*/
3345
edit: () => canSys(P.SHARED_TOOL_EDIT),
46+
/**
47+
* 系统「共享工具」(系统 > 共享 > 工具)修改工具状态权限
48+
*/
3449
switch: () => canSys(P.SHARED_TOOL_EDIT),
3550
debug: () => canSys(P.SHARED_TOOL_EDIT),
51+
/**
52+
* 系统「共享工具」(系统 > 共享 > 工具)删除权限
53+
*/
3654
delete: () => canSys(P.SHARED_TOOL_DELETE),
55+
/**
56+
* 系统「共享工具」(系统 > 共享 > 工具)发布权限
57+
*/
3758
publish: () => canSys(P.SHARED_TOOL_PUBLISH),
59+
/**
60+
* 系统「共享工具」(系统 > 共享 > 工具)导出权限
61+
*/
3862
export: () => canSys(P.SHARED_TOOL_EXPORT),
63+
/**
64+
* 系统「共享工具」(系统 > 共享 > 工具)查看关联资源权限
65+
*/
3966
relateMap: () => canSys(P.SHARED_TOOL_RELATE_RESOURCE_VIEW),
67+
/**
68+
* 系统「共享工具」(系统 > 共享 > 工具)查看执行记录权限
69+
*/
4070
record: () => canSys(P.SHARED_TOOL_EXECUTE_RECORD),
71+
/**
72+
* 系统「共享工具」(系统 > 共享 > 工具)授权工作空间权限
73+
*/
4174
authToWorkspace: () => canSys(P.SHARED_TOOL_TO_WORKSPACE),
4275
}
4376

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ const system = {
3030
* 系统「工具资源管理」(系统 > 资源管理 > 工具)编辑权限
3131
* */
3232
edit: () => canSys(P.RESOURCE_TOOL_EDIT),
33+
/**
34+
* 系统「工具资源管理」(系统 > 资源管理 > 工具)修改工具状态权限
35+
* */
3336
switch: () => canSys(P.RESOURCE_TOOL_EDIT),
3437
debug: () => canSys(P.RESOURCE_TOOL_EDIT),
3538
/**

‎ui/src/permission/modules/tool/workspace.ts‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ const workspace = {
3434
* 工作空间「工具」编辑权限
3535
*/
3636
edit: (id: string) => canRes(P.TOOL_EDIT, id),
37+
/**
38+
* 工作空间「工具」修改工具状态权限
39+
*/
3740
switch: (id: string) => canRes(P.TOOL_EDIT, id),
3841
/**
3942
* 工作空间「工具」复制权限

‎ui/src/views/system/resource-management/tool/index.vue‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ onMounted(() => {
178178
<template #default="{ row }">
179179
<div class="flex-align-center">
180180
<!-- 启用或禁用工具 -->
181-
<ToolStatusSwitch v-model:loading="operationLoading" :api="SystemToolApi" :tool="row" :disabled="!perm.tool.system.edit() || operationLoading" @update="handleToolUpdate" />
181+
<ToolStatusSwitch v-model:loading="operationLoading" :api="SystemToolApi" :tool="row" :disabled="!perm.tool.system.switch() || operationLoading" @update="handleToolUpdate" />
182182
<el-divider direction="vertical" class="ml-3! mr-2!" />
183183
<!-- 编辑工具配置 -->
184184
<EditToolAction v-if="perm.tool.system.edit()" display="button" label="编辑" :api="SystemToolApi" :tool="row" @update="handleToolUpdate" />

‎ui/src/views/system/shared-resources/model/index.vue‎

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import ModelCard from '@/views/model/model-card/ModelCard.vue'
1010
import ButtonAddModel from '@/views/model/create-model/ButtonAddModel.vue'
1111
import ModelProvider from '@/views/model/components/ModelProvider.vue'
1212
import { DeleteModelAction, EditModelAction, ParamSettingAction, RelatedResourcesModelAction } from '@/views/model/model-card/action-dropdown'
13+
import perm from '@/permission'
1314
1415
const DEFAULT_MODEL_PROVIDER: ModelProviderItem = { icon: '', name: '全部模型', provider: 'all' }
1516
@@ -87,7 +88,7 @@ onMounted(() => {
8788
<div class="flex-align-center">
8889
<MkComplexSearch :fields="searchFields" @change="handleSearchChange" />
8990
<!-- 添加模型 -->
90-
<ButtonAddModel :api="SystemSharedModelApi" :current-provider="currentProvider" :providers="modelProviders" @refresh="loadModels" />
91+
<ButtonAddModel v-if="perm.model.share.create()" :api="SystemSharedModelApi" :current-provider="currentProvider" :providers="modelProviders" @refresh="loadModels" />
9192
</div>
9293
</component>
9394
<div v-loading="loading">
@@ -96,16 +97,16 @@ onMounted(() => {
9697
<ModelCard :api="SystemSharedModelApi" :model="model" :provider="getModelProvider(model)" :refresh="loadModels" :shared="true">
9798
<template #action-dropdown>
9899
<!-- 编辑 -->
99-
<EditModelAction label="编辑" :api="SystemSharedModelApi" :model="model" :provider="getModelProvider(model)" @refresh="loadModels" />
100+
<EditModelAction v-if="perm.model.share.modify()" label="编辑" :api="SystemSharedModelApi" :model="model" :provider="getModelProvider(model)" @refresh="loadModels" />
100101
<!-- // TODO 授权工作空间 -->
101102
<!-- 模型参数设置 -->
102-
<ParamSettingAction v-if="model.model_type !== 'RERANKER'" label="模型参数设置" :api="SystemSharedModelApi" :model="model" />
103+
<ParamSettingAction v-if="model.model_type !== 'RERANKER' && perm.model.share.paramSetting()" label="模型参数设置" :api="SystemSharedModelApi" :model="model" />
103104

104105
<!-- 查看关联资源 -->
105-
<RelatedResourcesModelAction label="查看关联资源" :api="RelatedResourcesApi" :model="model" />
106+
<RelatedResourcesModelAction v-if="perm.model.share.relateMap()" label="查看关联资源" :api="RelatedResourcesApi" :model="model" />
106107

107108
<!-- 删除 -->
108-
<DeleteModelAction label="删除" :api="SystemSharedModelApi" :model="model" @refresh="loadModels" />
109+
<DeleteModelAction v-if="perm.model.share.delete()" label="删除" :api="SystemSharedModelApi" :model="model" @refresh="loadModels" />
109110
</template>
110111
</ModelCard>
111112
</template>

‎ui/src/views/system/shared-resources/tool/index.vue‎

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import {
2323
CopyToolAction,
2424
} from '@/views/tool/tool-card/action-dropdown'
2525
import ButtonToolStore from '@/views/tool/components/ButtonToolStore.vue'
26+
import perm from '@/permission'
2627
2728
const router = useRouter()
2829
@@ -103,7 +104,7 @@ function handleOpenWorkflow(tool: ToolItem, event: MouseEvent) {
103104
<!-- 工具商店 -->
104105
<ButtonToolStore folder-id="default" @refresh="refreshTools" />
105106
<!-- 创建共享工具 -->
106-
<ButtonCreateTool folder-id="default" :api="SystemSharedToolApi" @refresh="refreshTools" />
107+
<ButtonCreateTool v-if="perm.tool.share.create()" folder-id="default" :api="SystemSharedToolApi" @refresh="refreshTools" />
107108
</div>
108109
</component>
109110
<div v-loading="toolOperationLoading" class="min-h-0 flex-1">
@@ -120,12 +121,13 @@ function handleOpenWorkflow(tool: ToolItem, event: MouseEvent) {
120121
>
121122
<template #actions>
122123
<!-- 修改工具状态 -->
123-
<ToolStatusSwitch v-model:loading="toolOperationLoading" :api="SystemSharedToolApi" :tool="tool" @update="handleToolUpdate" />
124+
<ToolStatusSwitch v-if="perm.tool.share.switch()" v-model:loading="toolOperationLoading" :api="SystemSharedToolApi" :tool="tool" @update="handleToolUpdate" />
124125
<el-divider direction="vertical" class="ml-1!" />
125126
</template>
126127
<template #action-dropdown>
127128
<!-- 编辑共享工具 -->
128129
<EditToolAction
130+
v-if="perm.tool.share.edit()"
129131
:ref="
130132
(instance) => {
131133
if (instance) editToolActionRefs[tool.id] = instance as InstanceType<typeof EditToolAction>
@@ -139,6 +141,7 @@ function handleOpenWorkflow(tool: ToolItem, event: MouseEvent) {
139141
/>
140142
<!-- 复制 -->
141143
<CopyToolAction
144+
v-if="perm.tool.share.copy()"
142145
v-model:loading="toolOperationLoading"
143146
label="复制"
144147
:api="SystemSharedToolApi"
@@ -168,25 +171,26 @@ function handleOpenWorkflow(tool: ToolItem, event: MouseEvent) {
168171
:tool="tool"
169172
/>
170173
<!-- 查看关联资源 -->
171-
<RelatedResourcesToolAction label="查看关联资源" :api="SystemSharedRelatedResourcesApi" :tool="tool" />
174+
<RelatedResourcesToolAction v-if="perm.tool.share.relateMap()" label="查看关联资源" :api="SystemSharedRelatedResourcesApi" :tool="tool" />
172175
<!-- 查看执行记录 -->
173176
<ExecutionRecordToolAction
174-
v-if="tool.tool_type === TOOL_TYPE.CUSTOM || tool.tool_type === TOOL_TYPE.WORKFLOW"
177+
v-if="(tool.tool_type === TOOL_TYPE.CUSTOM || tool.tool_type === TOOL_TYPE.WORKFLOW) && perm.tool.share.record()"
175178
label="查看执行记录"
176179
:api="SystemSharedToolWorkflowApi"
177180
:tool="tool"
178181
/>
179182
<!-- TODO 授权工作空间 -->
180183
<!-- 导出共享工具 -->
181184
<ExportToolAction
182-
v-if="!tool.template_id"
185+
v-if="!tool.template_id && perm.tool.share.export()"
183186
v-model:loading="toolOperationLoading"
184187
label="导出"
185188
:api="SystemSharedToolApi"
186189
:tool="tool"
187190
/>
188191
<!-- 删除共享工具 -->
189192
<DeleteToolAction
193+
v-if="perm.tool.share.delete()"
190194
v-model:loading="toolOperationLoading"
191195
label="删除"
192196
:api="SystemSharedToolApi"

‎ui/src/views/tool/index.vue‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ onMounted(() => {
266266
>
267267
<template #actions>
268268
<!-- 修改工具状态 -->
269-
<ToolStatusSwitch :disabled="!perm.tool.workspace.edit(tool.id)" v-model:loading="toolOperationLoading" :api="ToolApi" :tool="tool" @update="handleToolUpdate" />
269+
<ToolStatusSwitch :disabled="!perm.tool.workspace.switch(tool.id)" v-model:loading="toolOperationLoading" :api="ToolApi" :tool="tool" @update="handleToolUpdate" />
270270
<el-divider direction="vertical" class="ml-1!"/>
271271
</template>
272272
<template #action-dropdown>
@@ -286,7 +286,7 @@ onMounted(() => {
286286
/>
287287
<ToolWorkflowAction v-if="tool.tool_type === TOOL_TYPE.WORKFLOW" label="工作流" :tool="tool" />
288288
<!-- 复制 -->
289-
<CopyToolAction v-model:loading="toolOperationLoading" label="复制" :api="ToolApi" :tool="tool" @refresh="refreshTool" />
289+
<CopyToolAction v-if="perm.tool.workspace.copy(tool.id)" v-model:loading="toolOperationLoading" label="复制" :api="ToolApi" :tool="tool" @refresh="refreshTool" />
290290
<InitParamAction
291291
v-if="(tool.init_field_list?.length ?? 0) > 0"
292292
v-model:loading="toolOperationLoading"

0 commit comments

Comments
 (0)