feat: Resource application permission
This commit is contained in:
parent
525af67387
commit
356229c6ad
@ -102,5 +102,34 @@ const systemManage = {
|
|||||||
],
|
],
|
||||||
'OR'
|
'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
|
export default systemManage
|
||||||
|
|||||||
@ -164,6 +164,10 @@ const workspace = {
|
|||||||
],
|
],
|
||||||
'OR'
|
'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(
|
return PermissionConst.APPLICATION_OVERVIEW_READ.getApplicationWorkspaceResourcePermission(
|
||||||
to ? to.params.id : '',
|
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'),
|
component: () => import('@/views/application-overview/index.vue'),
|
||||||
@ -59,7 +68,15 @@ const ApplicationDetailRouter = {
|
|||||||
return PermissionConst.APPLICATION_EDIT.getApplicationWorkspaceResourcePermission(
|
return PermissionConst.APPLICATION_EDIT.getApplicationWorkspaceResourcePermission(
|
||||||
to ? to.params.id : '',
|
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'),
|
component: () => import('@/views/application/ApplicationSetting.vue'),
|
||||||
@ -84,6 +101,14 @@ const ApplicationDetailRouter = {
|
|||||||
return PermissionConst.APPLICATION_ACCESS_READ.getApplicationWorkspaceResourcePermission(
|
return PermissionConst.APPLICATION_ACCESS_READ.getApplicationWorkspaceResourcePermission(
|
||||||
to ? to.params.id : '',)
|
to ? to.params.id : '',)
|
||||||
}],[EditionConst.IS_EE, EditionConst.IS_PE],'OR'),
|
}],[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'),
|
component: () => import('@/views/application/ApplicationAccess.vue'),
|
||||||
@ -109,7 +134,15 @@ const ApplicationDetailRouter = {
|
|||||||
const to: any = get_next_route()
|
const to: any = get_next_route()
|
||||||
return new ComplexPermission([],[PermissionConst.APPLICATION_CHAT_USER_READ.getApplicationWorkspaceResourcePermission(
|
return new ComplexPermission([],[PermissionConst.APPLICATION_CHAT_USER_READ.getApplicationWorkspaceResourcePermission(
|
||||||
to ? to.params.id : '',)],[EditionConst.IS_EE, EditionConst.IS_PE],'OR')
|
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'),
|
component: () => import('@/views/chat-user/index.vue'),
|
||||||
@ -135,7 +168,15 @@ const ApplicationDetailRouter = {
|
|||||||
return PermissionConst.APPLICATION_CHAT_LOG_READ.getApplicationWorkspaceResourcePermission(
|
return PermissionConst.APPLICATION_CHAT_LOG_READ.getApplicationWorkspaceResourcePermission(
|
||||||
to ? to.params.id : '',
|
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'),
|
component: () => import('@/views/chat-log/index.vue'),
|
||||||
|
|||||||
@ -259,7 +259,7 @@ const permissionObj = ref<any>({
|
|||||||
[],
|
[],
|
||||||
'OR',
|
'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],
|
RESOURCE_KNOWLEDGE: [RoleConst.ADMIN, PermissionConst.RESOURCE_KNOWLEDGE_CHAT_USER_EDIT],
|
||||||
SHAREDKNOWLEDGE: new ComplexPermission(
|
SHAREDKNOWLEDGE: new ComplexPermission(
|
||||||
[RoleConst.ADMIN],
|
[RoleConst.ADMIN],
|
||||||
|
|||||||
@ -241,19 +241,26 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$t('views.system.resource_management.management')"
|
:content="$t('views.system.resource_management.management')"
|
||||||
placement="top"
|
placement="top"
|
||||||
|
v-if="managePermission()"
|
||||||
>
|
>
|
||||||
<span class="mr-8">
|
<span class="mr-8">
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
text
|
text
|
||||||
:title="$t('views.system.resource_management.management')"
|
: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>
|
<AppIcon iconName="app-admin-operation"></AppIcon>
|
||||||
</el-button>
|
</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<el-dropdown trigger="click">
|
<el-dropdown trigger="click"
|
||||||
|
v-if="MoreFilledPermission()"
|
||||||
|
>
|
||||||
<el-button text @click.stop>
|
<el-button text @click.stop>
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<MoreFilled />
|
<MoreFilled />
|
||||||
@ -295,9 +302,6 @@ import { datetimeFormat } from '@/utils/time'
|
|||||||
import { loadPermissionApi } from '@/utils/dynamics-api/permission-api.ts'
|
import { loadPermissionApi } from '@/utils/dynamics-api/permission-api.ts'
|
||||||
import { isWorkFlow } from '@/utils/application.ts'
|
import { isWorkFlow } from '@/utils/application.ts'
|
||||||
import UserApi from '@/api/user/user.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 permissionMap from '@/permission'
|
||||||
import { MsgSuccess, MsgConfirm, MsgError } from '@/utils/message'
|
import { MsgSuccess, MsgConfirm, MsgError } from '@/utils/message'
|
||||||
|
|
||||||
@ -309,6 +313,19 @@ const permissionPrecise = computed(() => {
|
|||||||
return permissionMap['application']['systemManage']
|
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([])
|
const apiInputParams = ref([])
|
||||||
function toChat(row: any) {
|
function toChat(row: any) {
|
||||||
row?.work_flow?.nodes
|
row?.work_flow?.nodes
|
||||||
@ -396,131 +413,6 @@ const paginationConfig = reactive({
|
|||||||
total: 0,
|
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 workspaceOptions = ref<any[]>([])
|
||||||
const workspaceVisible = ref(false)
|
const workspaceVisible = ref(false)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user