mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 10:12:51 +00:00
feat: permission split (#3347)
This commit is contained in:
parent
c0979e2363
commit
f84aa3ec6c
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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"
|
||||
@handleNodeClick="folderClickHandel"
|
||||
@refreshTree="refreshFolder"
|
||||
:shareTitle="
|
||||
hasPermission(
|
||||
new ComplexPermission(
|
||||
[RoleConst.ADMIN],
|
||||
[PermissionConst.SHARED_TOOL_READ],
|
||||
[EditionConst.IS_EE],
|
||||
'OR',
|
||||
),
|
||||
'OR',
|
||||
)
|
||||
? 'views.system.share_tool'
|
||||
: null
|
||||
"
|
||||
showShared
|
||||
:shareTitle="$t('views.system.share_tool')"
|
||||
:showShared="permissionPrecise['is_share']()"
|
||||
class="p-8"
|
||||
/>
|
||||
</template>
|
||||
|
|
@ -248,7 +236,8 @@
|
|||
[
|
||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||
RoleConst.USER.getWorkspaceRole,
|
||||
PermissionConst.TOOL_EDIT.getWorkspacePermissionWorkspaceManageRole,
|
||||
PermissionConst.TOOL_EDIT
|
||||
.getWorkspacePermissionWorkspaceManageRole,
|
||||
PermissionConst.TOOL_EDIT.getWorkspacePermission,
|
||||
],
|
||||
'OR',
|
||||
|
|
@ -303,16 +292,7 @@
|
|||
{{ $t('common.export') }}
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
v-if="
|
||||
hasPermission(
|
||||
[
|
||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||
RoleConst.USER.getWorkspaceRole,
|
||||
PermissionConst.TOOL_DELETE.getWorkspacePermission,
|
||||
],
|
||||
'OR',
|
||||
)
|
||||
"
|
||||
v-if="permissionPrecise.delete()"
|
||||
divided
|
||||
@click.stop="deleteTool(item)"
|
||||
>
|
||||
|
|
@ -356,9 +336,24 @@ import { FolderSource } from '@/enums/common'
|
|||
import { ComplexPermission } from '@/utils/permission/type'
|
||||
import ToolStoreDialog from './component/ToolStoreDialog.vue'
|
||||
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 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 search_type = ref('name')
|
||||
const search_form = ref<{
|
||||
|
|
@ -400,8 +395,8 @@ function openCreateDialog(data?: any) {
|
|||
ToolDrawertitle.value = data ? t('views.tool.editTool') : t('views.tool.createTool')
|
||||
if (data) {
|
||||
ToolApi.getToolById(data?.id, changeStateloading).then((res) => {
|
||||
ToolFormDrawerRef.value.open(res.data)
|
||||
})
|
||||
ToolFormDrawerRef.value.open(res.data)
|
||||
})
|
||||
} else {
|
||||
ToolFormDrawerRef.value.open(data)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue