feat: Resource application permission

This commit is contained in:
zhangzhanwei 2025-07-31 14:42:16 +08:00 committed by zhanweizhang7
parent 525af67387
commit 356229c6ad
5 changed files with 101 additions and 135 deletions

View File

@ -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

View File

@ -164,6 +164,10 @@ const workspace = {
],
'OR'
),
overview_read: () => false,
access_read: () => false,
chat_user_read: () => false,
chat_log_read: () => false
}

View File

@ -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'),

View File

@ -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],

View File

@ -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)