feat: permission split (#3347)
This commit is contained in:
parent
c0979e2363
commit
f84aa3ec6c
9
ui/src/permission/index.ts
Normal file
9
ui/src/permission/index.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import tool from '@/permission/tool'
|
||||||
|
import model from '@/permission/model'
|
||||||
|
import knowledge from '@/permission/knowledge'
|
||||||
|
const permission = {
|
||||||
|
tool,
|
||||||
|
model,
|
||||||
|
knowledge,
|
||||||
|
}
|
||||||
|
export default permission
|
||||||
9
ui/src/permission/knowledge/index.ts
Normal file
9
ui/src/permission/knowledge/index.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import systemShare from './system-share'
|
||||||
|
import workspace from './workspace'
|
||||||
|
import systemManage from './system-manage'
|
||||||
|
const permission = {
|
||||||
|
systemShare,
|
||||||
|
workspace,
|
||||||
|
systemManage,
|
||||||
|
}
|
||||||
|
export default permission
|
||||||
26
ui/src/permission/knowledge/system-manage.ts
Normal file
26
ui/src/permission/knowledge/system-manage.ts
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
import { hasPermission } from '@/utils/permission/index'
|
||||||
|
import { ComplexPermission } from '@/utils/permission/type'
|
||||||
|
import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/data'
|
||||||
|
const workspace = {
|
||||||
|
is_share: () =>
|
||||||
|
hasPermission(
|
||||||
|
new ComplexPermission(
|
||||||
|
[RoleConst.ADMIN],
|
||||||
|
[PermissionConst.SHARED_TOOL_READ],
|
||||||
|
[EditionConst.IS_EE],
|
||||||
|
'OR',
|
||||||
|
),
|
||||||
|
'OR',
|
||||||
|
),
|
||||||
|
delete: () =>
|
||||||
|
hasPermission(
|
||||||
|
[
|
||||||
|
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||||
|
RoleConst.USER.getWorkspaceRole,
|
||||||
|
PermissionConst.TOOL_DELETE.getWorkspacePermission,
|
||||||
|
],
|
||||||
|
'OR',
|
||||||
|
),
|
||||||
|
}
|
||||||
|
|
||||||
|
export default workspace
|
||||||
7
ui/src/permission/knowledge/system-share.ts
Normal file
7
ui/src/permission/knowledge/system-share.ts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import { hasPermission } from '@/utils/permission/index'
|
||||||
|
import { ComplexPermission } from '@/utils/permission/type'
|
||||||
|
import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/data'
|
||||||
|
const share = {
|
||||||
|
is_share: () => false,
|
||||||
|
}
|
||||||
|
export default share
|
||||||
17
ui/src/permission/knowledge/workspace.ts
Normal file
17
ui/src/permission/knowledge/workspace.ts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
import { hasPermission } from '@/utils/permission/index'
|
||||||
|
import { ComplexPermission } from '@/utils/permission/type'
|
||||||
|
import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/data'
|
||||||
|
const workspace = {
|
||||||
|
is_share: () =>
|
||||||
|
hasPermission(
|
||||||
|
new ComplexPermission(
|
||||||
|
[RoleConst.ADMIN],
|
||||||
|
[PermissionConst.SHARED_TOOL_READ],
|
||||||
|
[EditionConst.IS_EE],
|
||||||
|
'OR',
|
||||||
|
),
|
||||||
|
'OR',
|
||||||
|
),
|
||||||
|
}
|
||||||
|
|
||||||
|
export default workspace
|
||||||
9
ui/src/permission/model/index.ts
Normal file
9
ui/src/permission/model/index.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import systemShare from './system-share'
|
||||||
|
import workspace from './workspace'
|
||||||
|
import systemManage from './system-manage'
|
||||||
|
const permission = {
|
||||||
|
systemShare,
|
||||||
|
workspace,
|
||||||
|
systemManage,
|
||||||
|
}
|
||||||
|
export default permission
|
||||||
26
ui/src/permission/model/system-manage.ts
Normal file
26
ui/src/permission/model/system-manage.ts
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
import { hasPermission } from '@/utils/permission/index'
|
||||||
|
import { ComplexPermission } from '@/utils/permission/type'
|
||||||
|
import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/data'
|
||||||
|
const workspace = {
|
||||||
|
is_share: () =>
|
||||||
|
hasPermission(
|
||||||
|
new ComplexPermission(
|
||||||
|
[RoleConst.ADMIN],
|
||||||
|
[PermissionConst.SHARED_TOOL_READ],
|
||||||
|
[EditionConst.IS_EE],
|
||||||
|
'OR',
|
||||||
|
),
|
||||||
|
'OR',
|
||||||
|
),
|
||||||
|
delete: () =>
|
||||||
|
hasPermission(
|
||||||
|
[
|
||||||
|
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||||
|
RoleConst.USER.getWorkspaceRole,
|
||||||
|
PermissionConst.TOOL_DELETE.getWorkspacePermission,
|
||||||
|
],
|
||||||
|
'OR',
|
||||||
|
),
|
||||||
|
}
|
||||||
|
|
||||||
|
export default workspace
|
||||||
7
ui/src/permission/model/system-share.ts
Normal file
7
ui/src/permission/model/system-share.ts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import { hasPermission } from '@/utils/permission/index'
|
||||||
|
import { ComplexPermission } from '@/utils/permission/type'
|
||||||
|
import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/data'
|
||||||
|
const share = {
|
||||||
|
is_share: () => false,
|
||||||
|
}
|
||||||
|
export default share
|
||||||
17
ui/src/permission/model/workspace.ts
Normal file
17
ui/src/permission/model/workspace.ts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
import { hasPermission } from '@/utils/permission/index'
|
||||||
|
import { ComplexPermission } from '@/utils/permission/type'
|
||||||
|
import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/data'
|
||||||
|
const workspace = {
|
||||||
|
is_share: () =>
|
||||||
|
hasPermission(
|
||||||
|
new ComplexPermission(
|
||||||
|
[RoleConst.ADMIN],
|
||||||
|
[PermissionConst.SHARED_TOOL_READ],
|
||||||
|
[EditionConst.IS_EE],
|
||||||
|
'OR',
|
||||||
|
),
|
||||||
|
'OR',
|
||||||
|
),
|
||||||
|
}
|
||||||
|
|
||||||
|
export default workspace
|
||||||
9
ui/src/permission/tool/index.ts
Normal file
9
ui/src/permission/tool/index.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import systemShare from './system-share'
|
||||||
|
import workspace from './workspace'
|
||||||
|
import systemManage from './system-manage'
|
||||||
|
const permission = {
|
||||||
|
systemShare,
|
||||||
|
workspace,
|
||||||
|
systemManage,
|
||||||
|
}
|
||||||
|
export default permission
|
||||||
18
ui/src/permission/tool/system-manage.ts
Normal file
18
ui/src/permission/tool/system-manage.ts
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
import { hasPermission } from '@/utils/permission/index'
|
||||||
|
import { ComplexPermission } from '@/utils/permission/type'
|
||||||
|
import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/data'
|
||||||
|
const workspace = {
|
||||||
|
is_share: () =>
|
||||||
|
hasPermission(
|
||||||
|
new ComplexPermission(
|
||||||
|
[RoleConst.ADMIN],
|
||||||
|
[PermissionConst.SHARED_TOOL_READ],
|
||||||
|
[EditionConst.IS_EE],
|
||||||
|
'OR',
|
||||||
|
),
|
||||||
|
'OR',
|
||||||
|
),
|
||||||
|
delete: () => false,
|
||||||
|
}
|
||||||
|
|
||||||
|
export default workspace
|
||||||
8
ui/src/permission/tool/system-share.ts
Normal file
8
ui/src/permission/tool/system-share.ts
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import { hasPermission } from '@/utils/permission/index'
|
||||||
|
import { ComplexPermission } from '@/utils/permission/type'
|
||||||
|
import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/data'
|
||||||
|
const share = {
|
||||||
|
is_share: () => false,
|
||||||
|
delete: () => false,
|
||||||
|
}
|
||||||
|
export default share
|
||||||
26
ui/src/permission/tool/workspace.ts
Normal file
26
ui/src/permission/tool/workspace.ts
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
import { hasPermission } from '@/utils/permission/index'
|
||||||
|
import { ComplexPermission } from '@/utils/permission/type'
|
||||||
|
import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/data'
|
||||||
|
const workspace = {
|
||||||
|
is_share: () =>
|
||||||
|
hasPermission(
|
||||||
|
new ComplexPermission(
|
||||||
|
[RoleConst.ADMIN],
|
||||||
|
[PermissionConst.SHARED_TOOL_READ],
|
||||||
|
[EditionConst.IS_EE],
|
||||||
|
'OR',
|
||||||
|
),
|
||||||
|
'OR',
|
||||||
|
),
|
||||||
|
delete: () =>
|
||||||
|
hasPermission(
|
||||||
|
[
|
||||||
|
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||||
|
RoleConst.USER.getWorkspaceRole,
|
||||||
|
PermissionConst.TOOL_DELETE.getWorkspacePermission,
|
||||||
|
],
|
||||||
|
'OR',
|
||||||
|
),
|
||||||
|
}
|
||||||
|
|
||||||
|
export default workspace
|
||||||
@ -8,20 +8,8 @@
|
|||||||
:currentNodeKey="currentFolder?.id"
|
:currentNodeKey="currentFolder?.id"
|
||||||
@handleNodeClick="folderClickHandel"
|
@handleNodeClick="folderClickHandel"
|
||||||
@refreshTree="refreshFolder"
|
@refreshTree="refreshFolder"
|
||||||
:shareTitle="
|
:shareTitle="$t('views.system.share_tool')"
|
||||||
hasPermission(
|
:showShared="permissionPrecise['is_share']()"
|
||||||
new ComplexPermission(
|
|
||||||
[RoleConst.ADMIN],
|
|
||||||
[PermissionConst.SHARED_TOOL_READ],
|
|
||||||
[EditionConst.IS_EE],
|
|
||||||
'OR',
|
|
||||||
),
|
|
||||||
'OR',
|
|
||||||
)
|
|
||||||
? 'views.system.share_tool'
|
|
||||||
: null
|
|
||||||
"
|
|
||||||
showShared
|
|
||||||
class="p-8"
|
class="p-8"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
@ -248,7 +236,8 @@
|
|||||||
[
|
[
|
||||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||||
RoleConst.USER.getWorkspaceRole,
|
RoleConst.USER.getWorkspaceRole,
|
||||||
PermissionConst.TOOL_EDIT.getWorkspacePermissionWorkspaceManageRole,
|
PermissionConst.TOOL_EDIT
|
||||||
|
.getWorkspacePermissionWorkspaceManageRole,
|
||||||
PermissionConst.TOOL_EDIT.getWorkspacePermission,
|
PermissionConst.TOOL_EDIT.getWorkspacePermission,
|
||||||
],
|
],
|
||||||
'OR',
|
'OR',
|
||||||
@ -303,16 +292,7 @@
|
|||||||
{{ $t('common.export') }}
|
{{ $t('common.export') }}
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item
|
<el-dropdown-item
|
||||||
v-if="
|
v-if="permissionPrecise.delete()"
|
||||||
hasPermission(
|
|
||||||
[
|
|
||||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
|
||||||
RoleConst.USER.getWorkspaceRole,
|
|
||||||
PermissionConst.TOOL_DELETE.getWorkspacePermission,
|
|
||||||
],
|
|
||||||
'OR',
|
|
||||||
)
|
|
||||||
"
|
|
||||||
divided
|
divided
|
||||||
@click.stop="deleteTool(item)"
|
@click.stop="deleteTool(item)"
|
||||||
>
|
>
|
||||||
@ -356,9 +336,24 @@ import { FolderSource } from '@/enums/common'
|
|||||||
import { ComplexPermission } from '@/utils/permission/type'
|
import { ComplexPermission } from '@/utils/permission/type'
|
||||||
import ToolStoreDialog from './component/ToolStoreDialog.vue'
|
import ToolStoreDialog from './component/ToolStoreDialog.vue'
|
||||||
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
|
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
|
||||||
|
import permissionMap from '@/permission'
|
||||||
|
import { useRoute } from 'vue-router'
|
||||||
|
const route = useRoute()
|
||||||
const { folder, user } = useStore()
|
const { folder, user } = useStore()
|
||||||
|
|
||||||
|
const type = computed(() => {
|
||||||
|
if (route.path.includes('shared')) {
|
||||||
|
return 'systemShare'
|
||||||
|
} else if (route.path.includes('resource-management')) {
|
||||||
|
return 'systemManage'
|
||||||
|
} else {
|
||||||
|
return 'workspace'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const permissionPrecise = computed(() => {
|
||||||
|
return permissionMap['tool'][type.value]
|
||||||
|
})
|
||||||
|
|
||||||
const InitParamDrawerRef = ref()
|
const InitParamDrawerRef = ref()
|
||||||
const search_type = ref('name')
|
const search_type = ref('name')
|
||||||
const search_form = ref<{
|
const search_form = ref<{
|
||||||
@ -400,8 +395,8 @@ function openCreateDialog(data?: any) {
|
|||||||
ToolDrawertitle.value = data ? t('views.tool.editTool') : t('views.tool.createTool')
|
ToolDrawertitle.value = data ? t('views.tool.editTool') : t('views.tool.createTool')
|
||||||
if (data) {
|
if (data) {
|
||||||
ToolApi.getToolById(data?.id, changeStateloading).then((res) => {
|
ToolApi.getToolById(data?.id, changeStateloading).then((res) => {
|
||||||
ToolFormDrawerRef.value.open(res.data)
|
ToolFormDrawerRef.value.open(res.data)
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
ToolFormDrawerRef.value.open(data)
|
ToolFormDrawerRef.value.open(data)
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user