fix: Resource authorization permission

This commit is contained in:
zhangzhanwei 2025-06-30 13:38:04 +08:00 committed by zhanweizhang7
parent 91f68781fe
commit 3cf6dde72b
3 changed files with 54 additions and 35 deletions

View File

@ -171,7 +171,19 @@ const systemRouter = {
parentPath: '/system',
parentName: 'system',
sameRoute: 'authorization',
permission: [RoleConst.ADMIN],
permission: [new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
[PermissionConst.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
PermissionConst.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_READ.getWorkspacePermissionWorkspaceManageRole],[],'OR'),
new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
[PermissionConst.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
PermissionConst.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_READ.getWorkspacePermissionWorkspaceManageRole],[],'OR'),
new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
[PermissionConst.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
PermissionConst.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_READ.getWorkspacePermissionWorkspaceManageRole],[],'OR'),
new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
[PermissionConst.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
PermissionConst.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_READ.getWorkspacePermissionWorkspaceManageRole],[],'OR'),
],
},
children: [
@ -184,14 +196,11 @@ const systemRouter = {
parentPath: '/system',
parentName: 'system',
resource: 'APPLICATION',
sameRoute: 'authorization',
permission: [new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
[PermissionConst.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
PermissionConst.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_READ.getWorkspacePermissionWorkspaceManageRole],[],'OR'),]
},
permission: [
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE,
PermissionConst.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
PermissionConst.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_READ
.getWorkspacePermissionWorkspaceManageRole,
],
component: () => import('@/views/system/resource-authorization/index.vue'),
},
{
@ -203,13 +212,10 @@ const systemRouter = {
parentPath: '/system',
parentName: 'system',
resource: 'KNOWLEDGE',
permission: [
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE,
PermissionConst.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
PermissionConst.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_READ
.getWorkspacePermissionWorkspaceManageRole,
],
sameRoute: 'authorization',
permission: [new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
[PermissionConst.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
PermissionConst.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_READ.getWorkspacePermissionWorkspaceManageRole],[],'OR'),]
},
component: () => import('@/views/system/resource-authorization/index.vue'),
},
@ -222,13 +228,10 @@ const systemRouter = {
parentPath: '/system',
parentName: 'system',
resource: 'TOOL',
permission: [
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE,
PermissionConst.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
PermissionConst.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_READ
.getWorkspacePermissionWorkspaceManageRole,
],
sameRoute: 'authorization',
permission: [new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
[PermissionConst.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
PermissionConst.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_READ.getWorkspacePermissionWorkspaceManageRole],[],'OR'),]
},
component: () => import('@/views/system/resource-authorization/index.vue'),
},
@ -241,13 +244,10 @@ const systemRouter = {
parentPath: '/system',
parentName: 'system',
resource: 'MODEL',
permission: [
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE,
PermissionConst.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
PermissionConst.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_READ
.getWorkspacePermissionWorkspaceManageRole,
],
sameRoute: 'authorization',
permission: [new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
[PermissionConst.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_READ,
PermissionConst.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_READ.getWorkspacePermissionWorkspaceManageRole],[],'OR'),]
},
component: () => import('@/views/system/resource-authorization/index.vue'),
},

View File

@ -237,16 +237,16 @@ const PermissionConst = {
'MODEL_WORKSPACE_USER_RESOURCE_PERMISSION:READ',
),
APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT: new Permission(
'APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT:READ+EDIT',
'APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION:READ+EDIT',
),
KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT: new Permission(
'KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT:READ+EDIT',
'KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION:READ+EDIT',
),
TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT: new Permission(
'TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT:READ+EDIT',
'TOOL_WORKSPACE_USER_RESOURCE_PERMISSION:READ+EDIT',
),
MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT: new Permission(
'MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT:READ+EDIT',
'MODEL_WORKSPACE_USER_RESOURCE_PERMISSION:READ+EDIT',
),
}
const RoleConst = {

View File

@ -81,7 +81,9 @@
</div>
<div class="submit-button">
<el-button type="primary" @click="submitPermissions">{{ $t('common.save') }}</el-button>
<el-button type="primary" @click="submitPermissions"
v-if="hasPermission(permissionObj[(route.meta?.resource as string||'APPLICATION')],'OR')"
>{{ $t('common.save') }}</el-button>
</div>
</div>
</div>
@ -99,10 +101,12 @@ import { AuthorizationEnum } from '@/enums/system'
import { t } from '@/locales'
import useStore from '@/stores'
import { cloneDeep } from 'lodash'
import { EditionConst } from '@/utils/permission/data'
import { EditionConst, RoleConst, PermissionConst } from '@/utils/permission/data'
import { hasPermission } from '@/utils/permission/index'
import WorkspaceApi from '@/api/workspace/workspace.ts'
import type { WorkspaceItem } from '@/api/type/workspace'
import { ComplexPermission } from '@/utils/permission/type'
const route = useRoute()
const { user } = useStore()
const loading = ref(false)
@ -114,6 +118,21 @@ const currentType = ref<string>('')
const filterText = ref('')
const tableHeight = ref(0)
const permissionObj=ref<any>({
"APPLICATION":new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
[PermissionConst.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT,
PermissionConst.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT.getWorkspacePermissionWorkspaceManageRole],[],'OR'),
"KNOWLEDGE":new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
[PermissionConst.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT,
PermissionConst.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT.getWorkspacePermissionWorkspaceManageRole],[],'OR'),
"TOOL":new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
[PermissionConst.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT,
PermissionConst.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT.getWorkspacePermissionWorkspaceManageRole],[],'OR'),
"MODEL":new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE],
[PermissionConst.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT,
PermissionConst.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT.getWorkspacePermissionWorkspaceManageRole],[],'OR')
})
console.log(route.meta.resource||'APPLICATION')
const settingTags = reactive([
{
label: t('views.knowledge.title'),