mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 01:33:05 +00:00
feat: Resource application permission
This commit is contained in:
parent
525af67387
commit
356229c6ad
|
|
@ -102,5 +102,34 @@ const systemManage = {
|
|||
],
|
||||
'OR'
|
||||
),
|
||||
overview_read: () =>
|
||||
hasPermission(
|
||||
[
|
||||
RoleConst.ADMIN,
|
||||
PermissionConst.RESOURCE_APPLICATION_OVERVIEW_READ
|
||||
],
|
||||
'OR'
|
||||
),
|
||||
access_read: () =>
|
||||
hasPermission(
|
||||
[
|
||||
RoleConst.ADMIN,
|
||||
PermissionConst.RESOURCE_APPLICATION_ACCESS_READ
|
||||
],'OR'
|
||||
),
|
||||
chat_user_read: () =>
|
||||
hasPermission(
|
||||
[
|
||||
RoleConst.ADMIN,
|
||||
PermissionConst.RESOURCE_APPLICATION_CHAT_USER_READ
|
||||
],'OR'
|
||||
),
|
||||
chat_log_read: () =>
|
||||
hasPermission(
|
||||
[
|
||||
RoleConst.ADMIN,
|
||||
PermissionConst.RESOURCE_APPLICATION_CHAT_LOG_READ
|
||||
],
|
||||
'OR')
|
||||
}
|
||||
export default systemManage
|
||||
|
|
|
|||
|
|
@ -164,6 +164,10 @@ const workspace = {
|
|||
],
|
||||
'OR'
|
||||
),
|
||||
overview_read: () => false,
|
||||
access_read: () => false,
|
||||
chat_user_read: () => false,
|
||||
chat_log_read: () => false
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -33,7 +33,16 @@ const ApplicationDetailRouter = {
|
|||
return PermissionConst.APPLICATION_OVERVIEW_READ.getApplicationWorkspaceResourcePermission(
|
||||
to ? to.params.id : '',
|
||||
)
|
||||
}
|
||||
},
|
||||
() => {
|
||||
const to: any = get_next_route()
|
||||
if (to.path.includes('resource-management')) {return RoleConst.ADMIN}
|
||||
},
|
||||
() => {
|
||||
const to: any = get_next_route()
|
||||
console.log('ss',to)
|
||||
if (to.path.includes('resource-management')) { return PermissionConst.RESOURCE_APPLICATION_OVERVIEW_READ}
|
||||
},
|
||||
]
|
||||
},
|
||||
component: () => import('@/views/application-overview/index.vue'),
|
||||
|
|
@ -59,7 +68,15 @@ const ApplicationDetailRouter = {
|
|||
return PermissionConst.APPLICATION_EDIT.getApplicationWorkspaceResourcePermission(
|
||||
to ? to.params.id : '',
|
||||
)
|
||||
}
|
||||
},
|
||||
() => {
|
||||
const to: any = get_next_route()
|
||||
if (to.path.includes('resource-management')) {return RoleConst.ADMIN}
|
||||
},
|
||||
()=>{
|
||||
const to: any = get_next_route()
|
||||
if (to.path.includes('resource-management')) { return PermissionConst.RESOURCE_APPLICATION_EDIT}
|
||||
},
|
||||
]
|
||||
},
|
||||
component: () => import('@/views/application/ApplicationSetting.vue'),
|
||||
|
|
@ -84,6 +101,14 @@ const ApplicationDetailRouter = {
|
|||
return PermissionConst.APPLICATION_ACCESS_READ.getApplicationWorkspaceResourcePermission(
|
||||
to ? to.params.id : '',)
|
||||
}],[EditionConst.IS_EE, EditionConst.IS_PE],'OR'),
|
||||
() => {
|
||||
const to: any = get_next_route()
|
||||
if (to.path.includes('resource-management')) {return RoleConst.ADMIN}
|
||||
},
|
||||
()=>{
|
||||
const to: any = get_next_route()
|
||||
if (to.path.includes('resource-management')) { return PermissionConst.RESOURCE_APPLICATION_ACCESS_READ}
|
||||
},
|
||||
]
|
||||
},
|
||||
component: () => import('@/views/application/ApplicationAccess.vue'),
|
||||
|
|
@ -109,7 +134,15 @@ const ApplicationDetailRouter = {
|
|||
const to: any = get_next_route()
|
||||
return new ComplexPermission([],[PermissionConst.APPLICATION_CHAT_USER_READ.getApplicationWorkspaceResourcePermission(
|
||||
to ? to.params.id : '',)],[EditionConst.IS_EE, EditionConst.IS_PE],'OR')
|
||||
}
|
||||
},
|
||||
() => {
|
||||
const to: any = get_next_route()
|
||||
if (to.path.includes('resource-management')) {return RoleConst.ADMIN}
|
||||
},
|
||||
()=>{
|
||||
const to: any = get_next_route()
|
||||
if (to.path.includes('resource-management')) { return PermissionConst.RESOURCE_APPLICATION_CHAT_USER_READ}
|
||||
},
|
||||
]
|
||||
},
|
||||
component: () => import('@/views/chat-user/index.vue'),
|
||||
|
|
@ -135,7 +168,15 @@ const ApplicationDetailRouter = {
|
|||
return PermissionConst.APPLICATION_CHAT_LOG_READ.getApplicationWorkspaceResourcePermission(
|
||||
to ? to.params.id : '',
|
||||
)
|
||||
}
|
||||
},
|
||||
() => {
|
||||
const to: any = get_next_route()
|
||||
if (to.path.includes('resource-management')) {return RoleConst.ADMIN}
|
||||
},
|
||||
()=>{
|
||||
const to: any = get_next_route()
|
||||
if (to.path.includes('resource-management')) { return PermissionConst.RESOURCE_APPLICATION_CHAT_LOG_READ}
|
||||
},
|
||||
]
|
||||
},
|
||||
component: () => import('@/views/chat-log/index.vue'),
|
||||
|
|
|
|||
|
|
@ -259,7 +259,7 @@ const permissionObj = ref<any>({
|
|||
[],
|
||||
'OR',
|
||||
),
|
||||
APPLICATION_KNOWLEDGE: [RoleConst.ADMIN, PermissionConst.RESOURCE_APPLICATION_CHAT_USER_EDIT],
|
||||
RESOURCE_APPLICATION: [RoleConst.ADMIN, PermissionConst.RESOURCE_APPLICATION_CHAT_USER_EDIT],
|
||||
RESOURCE_KNOWLEDGE: [RoleConst.ADMIN, PermissionConst.RESOURCE_KNOWLEDGE_CHAT_USER_EDIT],
|
||||
SHAREDKNOWLEDGE: new ComplexPermission(
|
||||
[RoleConst.ADMIN],
|
||||
|
|
|
|||
|
|
@ -241,19 +241,26 @@
|
|||
effect="dark"
|
||||
:content="$t('views.system.resource_management.management')"
|
||||
placement="top"
|
||||
v-if="managePermission()"
|
||||
>
|
||||
<span class="mr-8">
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
:title="$t('views.system.resource_management.management')"
|
||||
@click="goApp(row)"
|
||||
@click="
|
||||
router.push({
|
||||
path: `/application/resource-management/${row.id}/${row.type}/overview`,
|
||||
})
|
||||
"
|
||||
>
|
||||
<AppIcon iconName="app-admin-operation"></AppIcon>
|
||||
</el-button>
|
||||
</span>
|
||||
</el-tooltip>
|
||||
<el-dropdown trigger="click">
|
||||
<el-dropdown trigger="click"
|
||||
v-if="MoreFilledPermission()"
|
||||
>
|
||||
<el-button text @click.stop>
|
||||
<el-icon>
|
||||
<MoreFilled />
|
||||
|
|
@ -295,9 +302,6 @@ import { datetimeFormat } from '@/utils/time'
|
|||
import { loadPermissionApi } from '@/utils/dynamics-api/permission-api.ts'
|
||||
import { isWorkFlow } from '@/utils/application.ts'
|
||||
import UserApi from '@/api/user/user.ts'
|
||||
import { hasPermission } from '@/utils/permission'
|
||||
import { ComplexPermission } from '@/utils/permission/type'
|
||||
import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/data'
|
||||
import permissionMap from '@/permission'
|
||||
import { MsgSuccess, MsgConfirm, MsgError } from '@/utils/message'
|
||||
|
||||
|
|
@ -309,6 +313,19 @@ const permissionPrecise = computed(() => {
|
|||
return permissionMap['application']['systemManage']
|
||||
})
|
||||
|
||||
const managePermission = () => {
|
||||
return permissionPrecise.value.overview_read() ||
|
||||
permissionPrecise.value.access_read() ||
|
||||
permissionPrecise.value.edit() ||
|
||||
permissionPrecise.value.chat_log_read() ||
|
||||
permissionPrecise.value.chat_user_read()
|
||||
}
|
||||
|
||||
const MoreFilledPermission = () => {
|
||||
return permissionPrecise.value.export() ||
|
||||
permissionPrecise.value.delete()
|
||||
}
|
||||
|
||||
const apiInputParams = ref([])
|
||||
function toChat(row: any) {
|
||||
row?.work_flow?.nodes
|
||||
|
|
@ -396,131 +413,6 @@ const paginationConfig = reactive({
|
|||
total: 0,
|
||||
})
|
||||
|
||||
const goApp = (item: any) => {
|
||||
router.push({ path: get_route(item) })
|
||||
}
|
||||
|
||||
const get_route = (item: any) => {
|
||||
if (
|
||||
hasPermission(
|
||||
[
|
||||
new ComplexPermission(
|
||||
[RoleConst.USER],
|
||||
[PermissionConst.APPLICATION.getApplicationWorkspaceResourcePermission(item.id)],
|
||||
[],
|
||||
'AND',
|
||||
),
|
||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||
PermissionConst.APPLICATION_OVERVIEW_READ.getWorkspacePermissionWorkspaceManageRole,
|
||||
PermissionConst.APPLICATION_OVERVIEW_READ.getApplicationWorkspaceResourcePermission(
|
||||
item.id,
|
||||
),
|
||||
],
|
||||
'OR',
|
||||
)
|
||||
) {
|
||||
return `/application/resource-management/${item.id}/${item.type}/overview`
|
||||
} else if (
|
||||
hasPermission(
|
||||
[
|
||||
new ComplexPermission(
|
||||
[RoleConst.USER],
|
||||
[PermissionConst.APPLICATION.getApplicationWorkspaceResourcePermission(item.id)],
|
||||
[],
|
||||
'AND',
|
||||
),
|
||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||
PermissionConst.APPLICATION_EDIT.getWorkspacePermissionWorkspaceManageRole,
|
||||
PermissionConst.APPLICATION_EDIT.getApplicationWorkspaceResourcePermission(item.id),
|
||||
],
|
||||
'OR',
|
||||
)
|
||||
) {
|
||||
if (item.type == 'WORK_FLOW') {
|
||||
return `/application/resource-management/${item.id}/workflow`
|
||||
} else {
|
||||
return `/application/resource-management/${item.id}/${item.type}/setting`
|
||||
}
|
||||
} else if (
|
||||
hasPermission(
|
||||
[
|
||||
new ComplexPermission(
|
||||
[RoleConst.USER],
|
||||
[PermissionConst.APPLICATION.getApplicationWorkspaceResourcePermission(item.id)],
|
||||
[EditionConst.IS_EE, EditionConst.IS_PE],
|
||||
'AND',
|
||||
),
|
||||
new ComplexPermission(
|
||||
[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole],
|
||||
[PermissionConst.APPLICATION_ACCESS_READ.getWorkspacePermissionWorkspaceManageRole],
|
||||
[EditionConst.IS_EE, EditionConst.IS_PE],
|
||||
'OR',
|
||||
),
|
||||
new ComplexPermission(
|
||||
[],
|
||||
[
|
||||
PermissionConst.APPLICATION_ACCESS_READ.getApplicationWorkspaceResourcePermission(
|
||||
item.id,
|
||||
),
|
||||
],
|
||||
[EditionConst.IS_EE, EditionConst.IS_PE],
|
||||
'OR',
|
||||
),
|
||||
],
|
||||
'OR',
|
||||
)
|
||||
) {
|
||||
return `/application/resource-management/${item.id}/${item.type}/access`
|
||||
} else if (
|
||||
hasPermission(
|
||||
[
|
||||
new ComplexPermission(
|
||||
[RoleConst.USER],
|
||||
[PermissionConst.APPLICATION.getApplicationWorkspaceResourcePermission(item.id)],
|
||||
[EditionConst.IS_EE, EditionConst.IS_PE],
|
||||
'AND',
|
||||
),
|
||||
new ComplexPermission(
|
||||
[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole],
|
||||
[PermissionConst.APPLICATION_CHAT_USER_READ.getWorkspacePermissionWorkspaceManageRole],
|
||||
[EditionConst.IS_EE, EditionConst.IS_PE],
|
||||
'OR',
|
||||
),
|
||||
new ComplexPermission(
|
||||
[],
|
||||
[
|
||||
PermissionConst.APPLICATION_CHAT_USER_READ.getApplicationWorkspaceResourcePermission(
|
||||
item.id,
|
||||
),
|
||||
],
|
||||
[EditionConst.IS_EE, EditionConst.IS_PE],
|
||||
'OR',
|
||||
),
|
||||
],
|
||||
'OR',
|
||||
)
|
||||
) {
|
||||
return `/application/resource-management/${item.id}/${item.type}/chat-user`
|
||||
} else if (
|
||||
hasPermission(
|
||||
[
|
||||
new ComplexPermission(
|
||||
[RoleConst.USER],
|
||||
[PermissionConst.APPLICATION.getApplicationWorkspaceResourcePermission(item.id)],
|
||||
[],
|
||||
'AND',
|
||||
),
|
||||
PermissionConst.APPLICATION_CHAT_LOG_READ.getWorkspacePermissionWorkspaceManageRole,
|
||||
PermissionConst.APPLICATION_CHAT_LOG_READ.getApplicationWorkspaceResourcePermission(
|
||||
item.id,
|
||||
),
|
||||
],
|
||||
'OR',
|
||||
)
|
||||
) {
|
||||
return `/application/resource-management/${item.id}/${item.type}/chat-log`
|
||||
} else return `/system/resource-management/application/`
|
||||
}
|
||||
|
||||
const workspaceOptions = ref<any[]>([])
|
||||
const workspaceVisible = ref(false)
|
||||
|
|
|
|||
Loading…
Reference in New Issue