feat: Folder Permission
parent
f6c72b44c2
commit
0bc635a802
|
|
@ -41,7 +41,7 @@ class FolderView(APIView):
|
||||||
lambda r, kwargs: Permission(group=Group(f"{kwargs.get('source')}_FOLDER"), operate=Operate.EDIT,
|
lambda r, kwargs: Permission(group=Group(f"{kwargs.get('source')}_FOLDER"), operate=Operate.EDIT,
|
||||||
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}/{kwargs.get('source')}/{r.data.get('parent_id')}"),
|
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}/{kwargs.get('source')}/{r.data.get('parent_id')}"),
|
||||||
lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.EDIT,
|
lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.EDIT,
|
||||||
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}/ROLE/WORKSPACE_MANAGE"
|
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}:ROLE/WORKSPACE_MANAGE"
|
||||||
),
|
),
|
||||||
lambda r, kwargs: ViewPermission([RoleConstants.USER.get_workspace_role()],
|
lambda r, kwargs: ViewPermission([RoleConstants.USER.get_workspace_role()],
|
||||||
[Permission(group=Group(f"{kwargs.get('source')}_FOLDER"),
|
[Permission(group=Group(f"{kwargs.get('source')}_FOLDER"),
|
||||||
|
|
@ -100,7 +100,7 @@ class FolderView(APIView):
|
||||||
)
|
)
|
||||||
@has_permissions(
|
@has_permissions(
|
||||||
lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.EDIT,
|
lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.EDIT,
|
||||||
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}/ROLE/WORKSPACE_MANAGE"
|
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}:ROLE/WORKSPACE_MANAGE"
|
||||||
),
|
),
|
||||||
lambda r, kwargs: Permission(group=Group(f"{kwargs.get('source')}_FOLDER"), operate=Operate.EDIT,
|
lambda r, kwargs: Permission(group=Group(f"{kwargs.get('source')}_FOLDER"), operate=Operate.EDIT,
|
||||||
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}/{kwargs.get('source')}/{kwargs.get('folder_id')}"
|
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}/{kwargs.get('source')}/{kwargs.get('folder_id')}"
|
||||||
|
|
@ -152,7 +152,7 @@ class FolderView(APIView):
|
||||||
)
|
)
|
||||||
@has_permissions(
|
@has_permissions(
|
||||||
lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.EDIT,
|
lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.EDIT,
|
||||||
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}/ROLE/WORKSPACE_MANAGE"
|
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}:ROLE/WORKSPACE_MANAGE"
|
||||||
),
|
),
|
||||||
lambda r, kwargs: Permission(group=Group(f"{kwargs.get('source')}_FOLDER"), operate=Operate.EDIT,
|
lambda r, kwargs: Permission(group=Group(f"{kwargs.get('source')}_FOLDER"), operate=Operate.EDIT,
|
||||||
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}/{kwargs.get('source')}/{kwargs.get('folder_id')}"
|
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}/{kwargs.get('source')}/{kwargs.get('folder_id')}"
|
||||||
|
|
|
||||||
|
|
@ -117,7 +117,7 @@ class WorkspaceResourceUserPermissionView(APIView):
|
||||||
@has_permissions(
|
@has_permissions(
|
||||||
lambda r, kwargs: Permission(group=Group(kwargs.get('resource')),
|
lambda r, kwargs: Permission(group=Group(kwargs.get('resource')),
|
||||||
operate=Operate.AUTH,
|
operate=Operate.AUTH,
|
||||||
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}/ROLE/WORKSPACE_MANAGE"),
|
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}:ROLE/WORKSPACE_MANAGE"),
|
||||||
lambda r, kwargs: Permission(group=Group(kwargs.get('resource')),
|
lambda r, kwargs: Permission(group=Group(kwargs.get('resource')),
|
||||||
operate=Operate.AUTH,
|
operate=Operate.AUTH,
|
||||||
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}/{kwargs.get('resource')}/{kwargs.get('target')}"),
|
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}/{kwargs.get('resource')}/{kwargs.get('target')}"),
|
||||||
|
|
@ -151,7 +151,7 @@ class WorkspaceResourceUserPermissionView(APIView):
|
||||||
@has_permissions(
|
@has_permissions(
|
||||||
lambda r, kwargs: Permission(group=Group(kwargs.get('resource')),
|
lambda r, kwargs: Permission(group=Group(kwargs.get('resource')),
|
||||||
operate=Operate.AUTH,
|
operate=Operate.AUTH,
|
||||||
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}/ROLE/WORKSPACE_MANAGE"),
|
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}:ROLE/WORKSPACE_MANAGE"),
|
||||||
lambda r, kwargs: Permission(group=Group(kwargs.get('resource')),
|
lambda r, kwargs: Permission(group=Group(kwargs.get('resource')),
|
||||||
operate=Operate.AUTH,
|
operate=Operate.AUTH,
|
||||||
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}/{kwargs.get('resource')}/{kwargs.get('target')}"),
|
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}/{kwargs.get('resource')}/{kwargs.get('target')}"),
|
||||||
|
|
@ -181,7 +181,7 @@ class WorkspaceResourceUserPermissionView(APIView):
|
||||||
@has_permissions(
|
@has_permissions(
|
||||||
lambda r, kwargs: Permission(group=Group(kwargs.get('resource')),
|
lambda r, kwargs: Permission(group=Group(kwargs.get('resource')),
|
||||||
operate=Operate.AUTH,
|
operate=Operate.AUTH,
|
||||||
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}/ROLE/WORKSPACE_MANAGE"),
|
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}:ROLE/WORKSPACE_MANAGE"),
|
||||||
lambda r, kwargs: Permission(group=Group(kwargs.get('resource')),
|
lambda r, kwargs: Permission(group=Group(kwargs.get('resource')),
|
||||||
operate=Operate.AUTH,
|
operate=Operate.AUTH,
|
||||||
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}/{kwargs.get('resource')}/{kwargs.get('target')}"),
|
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}/{kwargs.get('resource')}/{kwargs.get('target')}"),
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
v-if="canOperation && permissionPrecise.folderManage(data.id)"
|
v-if="canOperation && MoreFilledPermission(node, data)"
|
||||||
@click.stop
|
@click.stop
|
||||||
v-show="hoverNodeId === data.id"
|
v-show="hoverNodeId === data.id"
|
||||||
@mouseenter.stop="handleMouseEnter(data)"
|
@mouseenter.stop="handleMouseEnter(data)"
|
||||||
|
|
@ -56,28 +56,28 @@
|
||||||
class="mr-16"
|
class="mr-16"
|
||||||
>
|
>
|
||||||
<el-dropdown trigger="click" :teleported="false">
|
<el-dropdown trigger="click" :teleported="false">
|
||||||
<el-button text class="w-full" v-if="permissionPrecise.folderManage(data.id)">
|
<el-button text class="w-full" v-if="MoreFilledPermission(node, data)">
|
||||||
<AppIcon iconName="app-more"></AppIcon>
|
<AppIcon iconName="app-more"></AppIcon>
|
||||||
</el-button>
|
</el-button>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
<el-dropdown-menu>
|
<el-dropdown-menu>
|
||||||
<el-dropdown-item
|
<el-dropdown-item
|
||||||
@click.stop="openCreateFolder(data)"
|
@click.stop="openCreateFolder(data)"
|
||||||
v-if="node.level !== 3 && permissionPrecise.folderManage(data.id)"
|
v-if="node.level !== 3 && permissionPrecise.folderCreate(data.id)"
|
||||||
>
|
>
|
||||||
<AppIcon iconName="app-add-folder" class="color-secondary"></AppIcon>
|
<AppIcon iconName="app-add-folder" class="color-secondary"></AppIcon>
|
||||||
{{ $t('components.folder.addChildFolder') }}
|
{{ $t('components.folder.addChildFolder') }}
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item
|
<el-dropdown-item
|
||||||
@click.stop="openEditFolder(data)"
|
@click.stop="openEditFolder(data)"
|
||||||
v-if="permissionPrecise.folderManage(data.id)"
|
v-if="permissionPrecise.folderEdit(data.id)"
|
||||||
>
|
>
|
||||||
<AppIcon iconName="app-edit" class="color-secondary"></AppIcon>
|
<AppIcon iconName="app-edit" class="color-secondary"></AppIcon>
|
||||||
{{ $t('common.edit') }}
|
{{ $t('common.edit') }}
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item
|
<el-dropdown-item
|
||||||
@click.stop="openAuthorization(data)"
|
@click.stop="openAuthorization(data)"
|
||||||
v-if="permissionPrecise.folderManage(data.id)"
|
v-if="permissionPrecise.folderAuth(data.id)"
|
||||||
>
|
>
|
||||||
<AppIcon iconName="app-resource-authorization" class="color-secondary"></AppIcon>
|
<AppIcon iconName="app-resource-authorization" class="color-secondary"></AppIcon>
|
||||||
{{ $t('views.system.resourceAuthorization.title') }}
|
{{ $t('views.system.resourceAuthorization.title') }}
|
||||||
|
|
@ -86,7 +86,7 @@
|
||||||
divided
|
divided
|
||||||
@click.stop="deleteFolder(data)"
|
@click.stop="deleteFolder(data)"
|
||||||
:disabled="!data.parent_id"
|
:disabled="!data.parent_id"
|
||||||
v-if="permissionPrecise.folderManage(data.id)"
|
v-if="permissionPrecise.folderDelete(data.id)"
|
||||||
>
|
>
|
||||||
<AppIcon iconName="app-delete" class="color-secondary"></AppIcon>
|
<AppIcon iconName="app-delete" class="color-secondary"></AppIcon>
|
||||||
{{ $t('common.delete') }}
|
{{ $t('common.delete') }}
|
||||||
|
|
@ -175,11 +175,12 @@ const permissionPrecise = computed(() => {
|
||||||
return permissionMap[resourceType.value!]['workspace']
|
return permissionMap[resourceType.value!]['workspace']
|
||||||
})
|
})
|
||||||
|
|
||||||
const MoreFilledPermission = (node: any) => {
|
const MoreFilledPermission = (node: any, data: any) => {
|
||||||
return (
|
return (
|
||||||
(node.level !== 3 && permissionPrecise.value.folderCreate()) ||
|
(node.level !== 3 && permissionPrecise.value.folderCreate(data.id)) ||
|
||||||
permissionPrecise.value.folderEdit() ||
|
permissionPrecise.value.folderEdit(data.id) ||
|
||||||
permissionPrecise.value.folderDelete()
|
permissionPrecise.value.folderDelete(data.id) ||
|
||||||
|
permissionPrecise.value.folderAuth(data.id)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -190,6 +190,8 @@ import permissionMap from '@/permission'
|
||||||
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
|
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
import useStore from '@/stores'
|
import useStore from '@/stores'
|
||||||
|
import { hasPermission } from '@/utils/permission/index'
|
||||||
|
import { PermissionConst, RoleConst } from '@/utils/permission/data'
|
||||||
|
|
||||||
const { user } = useStore()
|
const { user } = useStore()
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
|
|
@ -229,9 +231,30 @@ function getAllFolderIds(data: any) {
|
||||||
return [data.id,...(data.children?.flatMap((child: any) => getAllFolderIds(child)) || [])]
|
return [data.id,...(data.children?.flatMap((child: any) => getAllFolderIds(child)) || [])]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const RESOURCE_PERMISSION_MAP = {
|
||||||
|
application: PermissionConst.APPLICATION_RESOURCE_AUTHORIZATION.getWorkspacePermissionWorkspaceManageRole,
|
||||||
|
knowledge: PermissionConst.KNOWLEDGE_RESOURCE_AUTHORIZATION.getWorkspacePermissionWorkspaceManageRole,
|
||||||
|
tool: PermissionConst.TOOL_RESOURCE_AUTHORIZATION.getWorkspacePermissionWorkspaceManageRole,
|
||||||
|
}
|
||||||
|
|
||||||
|
const resourceAuthorizationOfManager = computed(() => {
|
||||||
|
return RESOURCE_PERMISSION_MAP[folderType.value]
|
||||||
|
})
|
||||||
|
|
||||||
// 过滤没有Manage权限的文件夹ID
|
// 过滤没有Manage权限的文件夹ID
|
||||||
function filterHasPermissionFolderIds(folderIds: string[]) {
|
function filterHasPermissionFolderIds(folderIds: string[]) {
|
||||||
|
if (hasPermission(
|
||||||
|
[
|
||||||
|
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||||
|
resourceAuthorizationOfManager.value
|
||||||
|
],'OR'
|
||||||
|
)) {
|
||||||
|
return folderIds
|
||||||
|
}
|
||||||
|
else {
|
||||||
return folderIds.filter(id => permissionPrecise.value.folderManage(id))
|
return folderIds.filter(id => permissionPrecise.value.folderManage(id))
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function confirmSinglePermission() {
|
function confirmSinglePermission() {
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ const systemManage = {
|
||||||
folderEdit: () => false,
|
folderEdit: () => false,
|
||||||
folderRead: () => false,
|
folderRead: () => false,
|
||||||
folderManage: () => false,
|
folderManage: () => false,
|
||||||
|
folderAuth: () => false,
|
||||||
export: () =>
|
export: () =>
|
||||||
hasPermission(
|
hasPermission(
|
||||||
[
|
[
|
||||||
|
|
|
||||||
|
|
@ -13,12 +13,12 @@ const workspace = {
|
||||||
],
|
],
|
||||||
'OR'
|
'OR'
|
||||||
),
|
),
|
||||||
folderCreate: () =>
|
folderCreate: (folder_id: string) =>
|
||||||
hasPermission(
|
hasPermission(
|
||||||
[
|
[
|
||||||
RoleConst.USER.getWorkspaceRole,
|
new ComplexPermission([RoleConst.USER],[PermissionConst.APPLICATION.getApplicationWorkspaceResourcePermission(folder_id)],[],'AND'),
|
||||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||||
PermissionConst.APPLICATION_CREATE.getWorkspacePermission,
|
PermissionConst.APPLICATION_FOLDER_EDIT.getApplicationWorkspaceResourcePermission(folder_id),
|
||||||
PermissionConst.APPLICATION_CREATE.getWorkspacePermissionWorkspaceManageRole,
|
PermissionConst.APPLICATION_CREATE.getWorkspacePermissionWorkspaceManageRole,
|
||||||
],
|
],
|
||||||
'OR'
|
'OR'
|
||||||
|
|
@ -29,7 +29,37 @@ const workspace = {
|
||||||
new ComplexPermission([RoleConst.USER],[PermissionConst.APPLICATION.getApplicationWorkspaceResourcePermission(folder_id)],[],'AND'),
|
new ComplexPermission([RoleConst.USER],[PermissionConst.APPLICATION.getApplicationWorkspaceResourcePermission(folder_id)],[],'AND'),
|
||||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||||
PermissionConst.APPLICATION_FOLDER_READ.getApplicationWorkspaceResourcePermission(folder_id),
|
PermissionConst.APPLICATION_FOLDER_READ.getApplicationWorkspaceResourcePermission(folder_id),
|
||||||
PermissionConst.APPLICATION_FOLDER_READ.getWorkspacePermissionWorkspaceManageRole,
|
PermissionConst.APPLICATION_READ.getWorkspacePermissionWorkspaceManageRole,
|
||||||
|
],
|
||||||
|
'OR'
|
||||||
|
),
|
||||||
|
folderEdit: (folder_id: string) =>
|
||||||
|
hasPermission(
|
||||||
|
[
|
||||||
|
new ComplexPermission([RoleConst.USER],[PermissionConst.APPLICATION.getApplicationWorkspaceResourcePermission(folder_id)],[],'AND'),
|
||||||
|
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||||
|
PermissionConst.APPLICATION_FOLDER_EDIT.getApplicationWorkspaceResourcePermission(folder_id),
|
||||||
|
PermissionConst.APPLICATION_EDIT.getWorkspacePermissionWorkspaceManageRole,
|
||||||
|
],
|
||||||
|
'OR'
|
||||||
|
),
|
||||||
|
folderAuth: (folder_id: string) =>
|
||||||
|
hasPermission(
|
||||||
|
[
|
||||||
|
new ComplexPermission([RoleConst.USER],[PermissionConst.APPLICATION.getApplicationWorkspaceResourcePermission(folder_id)],[],'AND'),
|
||||||
|
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||||
|
PermissionConst.APPLICATION_FOLDER_EDIT.getApplicationWorkspaceResourcePermission(folder_id),
|
||||||
|
PermissionConst.APPLICATION_RESOURCE_AUTHORIZATION.getWorkspacePermissionWorkspaceManageRole,
|
||||||
|
],
|
||||||
|
'OR'
|
||||||
|
),
|
||||||
|
folderDelete: (folder_id: string) =>
|
||||||
|
hasPermission(
|
||||||
|
[
|
||||||
|
new ComplexPermission([RoleConst.USER],[PermissionConst.APPLICATION.getApplicationWorkspaceResourcePermission(folder_id)],[],'AND'),
|
||||||
|
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||||
|
PermissionConst.APPLICATION_FOLDER_EDIT.getApplicationWorkspaceResourcePermission(folder_id),
|
||||||
|
PermissionConst.APPLICATION_DELETE.getWorkspacePermissionWorkspaceManageRole
|
||||||
],
|
],
|
||||||
'OR'
|
'OR'
|
||||||
),
|
),
|
||||||
|
|
@ -73,16 +103,6 @@ const workspace = {
|
||||||
],
|
],
|
||||||
'OR'
|
'OR'
|
||||||
),
|
),
|
||||||
folderEdit: () =>
|
|
||||||
hasPermission(
|
|
||||||
[
|
|
||||||
RoleConst.USER.getWorkspaceRole,
|
|
||||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
|
||||||
PermissionConst.APPLICATION_EDIT.getWorkspacePermissionWorkspaceManageRole,
|
|
||||||
PermissionConst.APPLICATION_EDIT.getWorkspacePermission
|
|
||||||
],
|
|
||||||
'OR'
|
|
||||||
),
|
|
||||||
export: (source_id:string) =>
|
export: (source_id:string) =>
|
||||||
hasPermission(
|
hasPermission(
|
||||||
[
|
[
|
||||||
|
|
@ -103,16 +123,7 @@ const workspace = {
|
||||||
],
|
],
|
||||||
'OR'
|
'OR'
|
||||||
),
|
),
|
||||||
folderDelete: () =>
|
|
||||||
hasPermission(
|
|
||||||
[
|
|
||||||
RoleConst.USER.getWorkspaceRole,
|
|
||||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
|
||||||
PermissionConst.APPLICATION_DELETE.getWorkspacePermissionWorkspaceManageRole,
|
|
||||||
PermissionConst.APPLICATION_DELETE.getWorkspacePermission
|
|
||||||
],
|
|
||||||
'OR'
|
|
||||||
),
|
|
||||||
overview_embed: (source_id:string) =>
|
overview_embed: (source_id:string) =>
|
||||||
hasPermission(
|
hasPermission(
|
||||||
[
|
[
|
||||||
|
|
|
||||||
|
|
@ -163,6 +163,7 @@ const systemManage = {
|
||||||
folderManage: () => false,
|
folderManage: () => false,
|
||||||
folderCreate: () => false,
|
folderCreate: () => false,
|
||||||
folderEdit: () => false,
|
folderEdit: () => false,
|
||||||
|
folderAuth: () => false,
|
||||||
folderDelete: () => false,
|
folderDelete: () => false,
|
||||||
hit_test: () =>
|
hit_test: () =>
|
||||||
hasPermission([
|
hasPermission([
|
||||||
|
|
|
||||||
|
|
@ -189,6 +189,7 @@ const share = {
|
||||||
folderManage: () => false,
|
folderManage: () => false,
|
||||||
folderCreate: () => false,
|
folderCreate: () => false,
|
||||||
folderEdit: () => false,
|
folderEdit: () => false,
|
||||||
|
folderAuth: () => false,
|
||||||
folderDelete: () => false,
|
folderDelete: () => false,
|
||||||
hit_test: () => false,
|
hit_test: () => false,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ const workspaceShare = {
|
||||||
folderManage: () => false,
|
folderManage: () => false,
|
||||||
folderCreate: () => false,
|
folderCreate: () => false,
|
||||||
folderEdit: () => false,
|
folderEdit: () => false,
|
||||||
|
folderAuth: () => false,
|
||||||
folderDelete: () => false,
|
folderDelete: () => false,
|
||||||
hit_test: () => false,
|
hit_test: () => false,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,17 +20,56 @@ const workspace = {
|
||||||
],
|
],
|
||||||
'OR',
|
'OR',
|
||||||
),
|
),
|
||||||
folderRead: () => true,
|
folderRead: (folder_id: string) =>
|
||||||
folderManage: () => true,
|
|
||||||
folderCreate: () =>
|
|
||||||
hasPermission(
|
hasPermission(
|
||||||
[
|
[
|
||||||
RoleConst.USER.getWorkspaceRole,
|
new ComplexPermission([RoleConst.USER],[PermissionConst.KNOWLEDGE.getKnowledgeWorkspaceResourcePermission(folder_id)],[],'AND'),
|
||||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||||
PermissionConst.KNOWLEDGE_CREATE.getWorkspacePermission,
|
PermissionConst.KNOWLEDGE_FOLDER_READ.getKnowledgeWorkspaceResourcePermission(folder_id),
|
||||||
|
PermissionConst.KNOWLEDGE_READ.getWorkspacePermissionWorkspaceManageRole,
|
||||||
|
],
|
||||||
|
'OR'
|
||||||
|
),
|
||||||
|
folderManage: () => true,
|
||||||
|
folderAuth: (folder_id: string) =>
|
||||||
|
hasPermission(
|
||||||
|
[
|
||||||
|
new ComplexPermission([RoleConst.USER],[PermissionConst.KNOWLEDGE.getKnowledgeWorkspaceResourcePermission(folder_id)],[],'AND'),
|
||||||
|
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||||
|
PermissionConst.KNOWLEDGE_FOLDER_EDIT.getKnowledgeWorkspaceResourcePermission(folder_id),
|
||||||
|
PermissionConst.KNOWLEDGE_RESOURCE_AUTHORIZATION.getWorkspacePermissionWorkspaceManageRole,
|
||||||
|
],
|
||||||
|
'OR'
|
||||||
|
),
|
||||||
|
folderCreate: (folder_id: string) =>
|
||||||
|
hasPermission(
|
||||||
|
[
|
||||||
|
new ComplexPermission([RoleConst.USER],[PermissionConst.KNOWLEDGE.getKnowledgeWorkspaceResourcePermission(folder_id)],[],'AND'),
|
||||||
|
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||||
|
PermissionConst.KNOWLEDGE_FOLDER_EDIT.getKnowledgeWorkspaceResourcePermission(folder_id),
|
||||||
PermissionConst.KNOWLEDGE_CREATE.getWorkspacePermissionWorkspaceManageRole,
|
PermissionConst.KNOWLEDGE_CREATE.getWorkspacePermissionWorkspaceManageRole,
|
||||||
],
|
],
|
||||||
'OR',
|
'OR'
|
||||||
|
),
|
||||||
|
folderDelete: (folder_id: string) =>
|
||||||
|
hasPermission(
|
||||||
|
[
|
||||||
|
new ComplexPermission([RoleConst.USER],[PermissionConst.KNOWLEDGE.getKnowledgeWorkspaceResourcePermission(folder_id)],[],'AND'),
|
||||||
|
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||||
|
PermissionConst.KNOWLEDGE_FOLDER_EDIT.getKnowledgeWorkspaceResourcePermission(folder_id),
|
||||||
|
PermissionConst.KNOWLEDGE_DELETE.getWorkspacePermissionWorkspaceManageRole,
|
||||||
|
],
|
||||||
|
'OR'
|
||||||
|
),
|
||||||
|
folderEdit: (folder_id: string) =>
|
||||||
|
hasPermission(
|
||||||
|
[
|
||||||
|
new ComplexPermission([RoleConst.USER],[PermissionConst.KNOWLEDGE.getKnowledgeWorkspaceResourcePermission(folder_id)],[],'AND'),
|
||||||
|
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||||
|
PermissionConst.KNOWLEDGE_FOLDER_EDIT.getKnowledgeWorkspaceResourcePermission(folder_id),
|
||||||
|
PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermissionWorkspaceManageRole,
|
||||||
|
],
|
||||||
|
'OR'
|
||||||
),
|
),
|
||||||
sync: (source_id:string) =>
|
sync: (source_id:string) =>
|
||||||
hasPermission(
|
hasPermission(
|
||||||
|
|
@ -82,16 +121,6 @@ const workspace = {
|
||||||
],
|
],
|
||||||
'OR',
|
'OR',
|
||||||
),
|
),
|
||||||
folderEdit: () =>
|
|
||||||
hasPermission(
|
|
||||||
[
|
|
||||||
RoleConst.USER.getWorkspaceRole,
|
|
||||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
|
||||||
PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermission,
|
|
||||||
PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermissionWorkspaceManageRole,
|
|
||||||
],
|
|
||||||
'OR',
|
|
||||||
),
|
|
||||||
export: (source_id:string) =>
|
export: (source_id:string) =>
|
||||||
hasPermission(
|
hasPermission(
|
||||||
[
|
[
|
||||||
|
|
@ -112,16 +141,6 @@ const workspace = {
|
||||||
],
|
],
|
||||||
'OR',
|
'OR',
|
||||||
),
|
),
|
||||||
folderDelete: () =>
|
|
||||||
hasPermission(
|
|
||||||
[
|
|
||||||
RoleConst.USER.getWorkspaceRole,
|
|
||||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
|
||||||
PermissionConst.KNOWLEDGE_DELETE.getWorkspacePermission,
|
|
||||||
PermissionConst.KNOWLEDGE_DELETE.getWorkspacePermissionWorkspaceManageRole,
|
|
||||||
],
|
|
||||||
'OR',
|
|
||||||
),
|
|
||||||
doc_read: () => false,
|
doc_read: () => false,
|
||||||
doc_create: (source_id:string) =>
|
doc_create: (source_id:string) =>
|
||||||
hasPermission(
|
hasPermission(
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ const systemManage = {
|
||||||
folderManage: () => false,
|
folderManage: () => false,
|
||||||
folderCreate: () => false,
|
folderCreate: () => false,
|
||||||
folderEdit: () => false,
|
folderEdit: () => false,
|
||||||
|
folderAuth: () => false,
|
||||||
folderDelete: () => false,
|
folderDelete: () => false,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@ const share = {
|
||||||
folderManage: () => false,
|
folderManage: () => false,
|
||||||
folderCreate: () => false,
|
folderCreate: () => false,
|
||||||
folderEdit: () => false,
|
folderEdit: () => false,
|
||||||
|
folderAuth: () => false,
|
||||||
folderDelete: () => false,
|
folderDelete: () => false,
|
||||||
}
|
}
|
||||||
export default share
|
export default share
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ const workspace = {
|
||||||
),
|
),
|
||||||
folderRead: () => true,
|
folderRead: () => true,
|
||||||
folderManage: () => true,
|
folderManage: () => true,
|
||||||
|
folderAuth: () => false,
|
||||||
folderCreate: () =>
|
folderCreate: () =>
|
||||||
hasPermission(
|
hasPermission(
|
||||||
[
|
[
|
||||||
|
|
|
||||||
|
|
@ -78,6 +78,7 @@ const systemManage = {
|
||||||
folderManage: () => false,
|
folderManage: () => false,
|
||||||
folderCreate: () => false,
|
folderCreate: () => false,
|
||||||
folderEdit: () => false,
|
folderEdit: () => false,
|
||||||
|
folderAuth: () => false,
|
||||||
folderDelete: () => false,
|
folderDelete: () => false,
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -82,6 +82,7 @@ const share = {
|
||||||
folderManage: () => false,
|
folderManage: () => false,
|
||||||
folderCreate: () => false,
|
folderCreate: () => false,
|
||||||
folderEdit: () => false,
|
folderEdit: () => false,
|
||||||
|
folderAuth: () => false,
|
||||||
folderDelete: () => false,
|
folderDelete: () => false,
|
||||||
}
|
}
|
||||||
export default share
|
export default share
|
||||||
|
|
|
||||||
|
|
@ -40,18 +40,57 @@ const workspace = {
|
||||||
],
|
],
|
||||||
'OR'
|
'OR'
|
||||||
),
|
),
|
||||||
folderRead: () => true,
|
folderCreate: (folder_id: string) =>
|
||||||
folderManage: () => true,
|
|
||||||
folderCreate: () =>
|
|
||||||
hasPermission(
|
hasPermission(
|
||||||
[
|
[
|
||||||
|
new ComplexPermission([RoleConst.USER],[PermissionConst.TOOL.getToolWorkspaceResourcePermission(folder_id)],[],'AND'),
|
||||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||||
RoleConst.USER.getWorkspaceRole,
|
PermissionConst.TOOL_FOLDER_EDIT.getToolWorkspaceResourcePermission(folder_id),
|
||||||
PermissionConst.TOOL_CREATE.getWorkspacePermission,
|
PermissionConst.TOOL_CREATE.getWorkspacePermissionWorkspaceManageRole,
|
||||||
PermissionConst.TOOL_CREATE.getWorkspacePermissionWorkspaceManageRole
|
|
||||||
],
|
],
|
||||||
'OR'
|
'OR'
|
||||||
),
|
),
|
||||||
|
folderRead: (folder_id: string) =>
|
||||||
|
hasPermission(
|
||||||
|
[
|
||||||
|
new ComplexPermission([RoleConst.USER],[PermissionConst.TOOL.getToolWorkspaceResourcePermission(folder_id)],[],'AND'),
|
||||||
|
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||||
|
PermissionConst.TOOL_FOLDER_READ.getToolWorkspaceResourcePermission(folder_id),
|
||||||
|
PermissionConst.TOOL_READ.getWorkspacePermissionWorkspaceManageRole,
|
||||||
|
],
|
||||||
|
'OR'
|
||||||
|
),
|
||||||
|
folderEdit: (folder_id: string) =>
|
||||||
|
hasPermission(
|
||||||
|
[
|
||||||
|
new ComplexPermission([RoleConst.USER],[PermissionConst.TOOL.getToolWorkspaceResourcePermission(folder_id)],[],'AND'),
|
||||||
|
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||||
|
PermissionConst.TOOL_FOLDER_EDIT.getToolWorkspaceResourcePermission(folder_id),
|
||||||
|
PermissionConst.TOOL_EDIT.getWorkspacePermissionWorkspaceManageRole,
|
||||||
|
],
|
||||||
|
'OR'
|
||||||
|
),
|
||||||
|
folderAuth: (folder_id: string) =>
|
||||||
|
hasPermission(
|
||||||
|
[
|
||||||
|
new ComplexPermission([RoleConst.USER],[PermissionConst.TOOL.getToolWorkspaceResourcePermission(folder_id)],[],'AND'),
|
||||||
|
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||||
|
PermissionConst.TOOL_FOLDER_EDIT.getToolWorkspaceResourcePermission(folder_id),
|
||||||
|
PermissionConst.TOOL_RESOURCE_AUTHORIZATION.getWorkspacePermissionWorkspaceManageRole,
|
||||||
|
],
|
||||||
|
'OR'
|
||||||
|
),
|
||||||
|
folderDelete: (folder_id: string) =>
|
||||||
|
hasPermission(
|
||||||
|
[
|
||||||
|
new ComplexPermission([RoleConst.USER],[PermissionConst.TOOL.getToolWorkspaceResourcePermission(folder_id)],[],'AND'),
|
||||||
|
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||||
|
PermissionConst.TOOL_FOLDER_EDIT.getToolWorkspaceResourcePermission(folder_id),
|
||||||
|
PermissionConst.TOOL_DELETE.getWorkspacePermissionWorkspaceManageRole,
|
||||||
|
],
|
||||||
|
'OR'
|
||||||
|
),
|
||||||
|
folderManage: () => true,
|
||||||
delete: (source_id:string) =>
|
delete: (source_id:string) =>
|
||||||
hasPermission(
|
hasPermission(
|
||||||
[
|
[
|
||||||
|
|
@ -62,16 +101,6 @@ const workspace = {
|
||||||
],
|
],
|
||||||
'OR',
|
'OR',
|
||||||
),
|
),
|
||||||
folderDelete: () =>
|
|
||||||
hasPermission(
|
|
||||||
[
|
|
||||||
RoleConst.USER.getWorkspaceRole,
|
|
||||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
|
||||||
PermissionConst.TOOL_DELETE.getWorkspacePermission,
|
|
||||||
PermissionConst.TOOL_DELETE.getWorkspacePermissionWorkspaceManageRole
|
|
||||||
],
|
|
||||||
'OR',
|
|
||||||
),
|
|
||||||
switch: (source_id:string) =>
|
switch: (source_id:string) =>
|
||||||
hasPermission(
|
hasPermission(
|
||||||
[
|
[
|
||||||
|
|
@ -92,16 +121,6 @@ const workspace = {
|
||||||
],
|
],
|
||||||
'OR'
|
'OR'
|
||||||
),
|
),
|
||||||
folderEdit: () =>
|
|
||||||
hasPermission(
|
|
||||||
[
|
|
||||||
RoleConst.USER.getWorkspaceRole,
|
|
||||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
|
||||||
PermissionConst.TOOL_EDIT.getWorkspacePermission,
|
|
||||||
PermissionConst.TOOL_EDIT.getWorkspacePermissionWorkspaceManageRole
|
|
||||||
],
|
|
||||||
'OR',
|
|
||||||
),
|
|
||||||
copy: (source_id:string) =>
|
copy: (source_id:string) =>
|
||||||
hasPermission(
|
hasPermission(
|
||||||
[
|
[
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue