Skip to content

Commit 5a2f4a9

Browse files
committed
fix: Resource authorization permission
1 parent a66cdc0 commit 5a2f4a9

File tree

3 files changed

+54
-35
lines changed

3 files changed

+54
-35
lines changed

ui/src/router/modules/system.ts

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,19 @@ const systemRouter = {
171171
parentPath: '/system',
172172
parentName: 'system',
173173
sameRoute: 'authorization',
174-
permission: [RoleConst.ADMIN],
174+
permission: [new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
175+
[PermissionConst.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
176+
PermissionConst.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_READ.getWorkspacePermissionWorkspaceManageRole],[],'OR'),
177+
new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
178+
[PermissionConst.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
179+
PermissionConst.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_READ.getWorkspacePermissionWorkspaceManageRole],[],'OR'),
180+
new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
181+
[PermissionConst.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
182+
PermissionConst.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_READ.getWorkspacePermissionWorkspaceManageRole],[],'OR'),
183+
new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
184+
[PermissionConst.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
185+
PermissionConst.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_READ.getWorkspacePermissionWorkspaceManageRole],[],'OR'),
186+
],
175187
},
176188

177189
children: [
@@ -184,14 +196,11 @@ const systemRouter = {
184196
parentPath: '/system',
185197
parentName: 'system',
186198
resource: 'APPLICATION',
199+
sameRoute: 'authorization',
200+
permission: [new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
201+
[PermissionConst.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
202+
PermissionConst.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_READ.getWorkspacePermissionWorkspaceManageRole],[],'OR'),]
187203
},
188-
permission: [
189-
RoleConst.ADMIN,
190-
RoleConst.WORKSPACE_MANAGE,
191-
PermissionConst.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
192-
PermissionConst.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_READ
193-
.getWorkspacePermissionWorkspaceManageRole,
194-
],
195204
component: () => import('@/views/system/resource-authorization/index.vue'),
196205
},
197206
{
@@ -203,13 +212,10 @@ const systemRouter = {
203212
parentPath: '/system',
204213
parentName: 'system',
205214
resource: 'KNOWLEDGE',
206-
permission: [
207-
RoleConst.ADMIN,
208-
RoleConst.WORKSPACE_MANAGE,
209-
PermissionConst.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
210-
PermissionConst.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_READ
211-
.getWorkspacePermissionWorkspaceManageRole,
212-
],
215+
sameRoute: 'authorization',
216+
permission: [new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
217+
[PermissionConst.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
218+
PermissionConst.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_READ.getWorkspacePermissionWorkspaceManageRole],[],'OR'),]
213219
},
214220
component: () => import('@/views/system/resource-authorization/index.vue'),
215221
},
@@ -222,13 +228,10 @@ const systemRouter = {
222228
parentPath: '/system',
223229
parentName: 'system',
224230
resource: 'TOOL',
225-
permission: [
226-
RoleConst.ADMIN,
227-
RoleConst.WORKSPACE_MANAGE,
228-
PermissionConst.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
229-
PermissionConst.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_READ
230-
.getWorkspacePermissionWorkspaceManageRole,
231-
],
231+
sameRoute: 'authorization',
232+
permission: [new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
233+
[PermissionConst.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
234+
PermissionConst.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_READ.getWorkspacePermissionWorkspaceManageRole],[],'OR'),]
232235
},
233236
component: () => import('@/views/system/resource-authorization/index.vue'),
234237
},
@@ -241,13 +244,10 @@ const systemRouter = {
241244
parentPath: '/system',
242245
parentName: 'system',
243246
resource: 'MODEL',
244-
permission: [
245-
RoleConst.ADMIN,
246-
RoleConst.WORKSPACE_MANAGE,
247-
PermissionConst.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
248-
PermissionConst.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_READ
249-
.getWorkspacePermissionWorkspaceManageRole,
250-
],
247+
sameRoute: 'authorization',
248+
permission: [new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
249+
[PermissionConst.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
250+
PermissionConst.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_READ.getWorkspacePermissionWorkspaceManageRole],[],'OR'),]
251251
},
252252
component: () => import('@/views/system/resource-authorization/index.vue'),
253253
},

ui/src/utils/permission/data.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -237,16 +237,16 @@ const PermissionConst = {
237237
'MODEL_WORKSPACE_USER_RESOURCE_PERMISSION:READ',
238238
),
239239
APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT: new Permission(
240-
'APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT:READ+EDIT',
240+
'APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION:READ+EDIT',
241241
),
242242
KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT: new Permission(
243-
'KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT:READ+EDIT',
243+
'KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION:READ+EDIT',
244244
),
245245
TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT: new Permission(
246-
'TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT:READ+EDIT',
246+
'TOOL_WORKSPACE_USER_RESOURCE_PERMISSION:READ+EDIT',
247247
),
248248
MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT: new Permission(
249-
'MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT:READ+EDIT',
249+
'MODEL_WORKSPACE_USER_RESOURCE_PERMISSION:READ+EDIT',
250250
),
251251
}
252252
const RoleConst = {

ui/src/views/system/resource-authorization/index.vue

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,9 @@
8181
</div>
8282

8383
<div class="submit-button">
84-
<el-button type="primary" @click="submitPermissions">{{ $t('common.save') }}</el-button>
84+
<el-button type="primary" @click="submitPermissions"
85+
v-if="hasPermission(permissionObj[(route.meta?.resource as string||'APPLICATION')],'OR')"
86+
>{{ $t('common.save') }}</el-button>
8587
</div>
8688
</div>
8789
</div>
@@ -99,10 +101,12 @@ import { AuthorizationEnum } from '@/enums/system'
99101
import { t } from '@/locales'
100102
import useStore from '@/stores'
101103
import { cloneDeep } from 'lodash'
102-
import { EditionConst } from '@/utils/permission/data'
104+
import { EditionConst, RoleConst, PermissionConst } from '@/utils/permission/data'
103105
import { hasPermission } from '@/utils/permission/index'
104106
import WorkspaceApi from '@/api/workspace/workspace.ts'
105107
import type { WorkspaceItem } from '@/api/type/workspace'
108+
import { ComplexPermission } from '@/utils/permission/type'
109+
106110
const route = useRoute()
107111
const { user } = useStore()
108112
const loading = ref(false)
@@ -114,6 +118,21 @@ const currentType = ref<string>('')
114118
const filterText = ref('')
115119
const tableHeight = ref(0)
116120
121+
const permissionObj=ref<any>({
122+
"APPLICATION":new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
123+
[PermissionConst.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT,
124+
PermissionConst.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT.getWorkspacePermissionWorkspaceManageRole],[],'OR'),
125+
"KNOWLEDGE":new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
126+
[PermissionConst.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT,
127+
PermissionConst.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT.getWorkspacePermissionWorkspaceManageRole],[],'OR'),
128+
"TOOL":new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
129+
[PermissionConst.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT,
130+
PermissionConst.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT.getWorkspacePermissionWorkspaceManageRole],[],'OR'),
131+
"MODEL":new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
132+
[PermissionConst.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT,
133+
PermissionConst.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT.getWorkspacePermissionWorkspaceManageRole],[],'OR')
134+
})
135+
console.log(route.meta.resource||'APPLICATION')
117136
const settingTags = reactive([
118137
{
119138
label: t('views.knowledge.title'),

0 commit comments

Comments
 (0)