Skip to content

Commit 15d5a1e

Browse files
committed
fix: Chat_log_permission
1 parent 6b17b45 commit 15d5a1e

File tree

3 files changed

+45
-9
lines changed

3 files changed

+45
-9
lines changed

ui/src/components/select-knowledge-document/index.vue

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,16 @@ import type { FormInstance, FormRules } from 'element-plus'
5959
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
6060
import useStore from '@/stores'
6161
import { t } from '@/locales'
62-
const props = defineProps<{
63-
data?: {
64-
type: object
65-
default: () => null
66-
}
62+
const props = withDefaults(defineProps<{
63+
data?: any,
64+
postKnowledgeHandler?: (knowledge_list:Array<any>) => Array<any>
6765
apiType: 'systemShare' | 'workspace' | 'systemManage'
6866
isApplication?: boolean,
6967
workspaceId?: string,
70-
}>()
68+
}>(), {
69+
postKnowledgeHandler: (k_l: Array<any>) => k_l,
70+
data: () => null
71+
})
7172
7273
const { user } = useStore()
7374
@@ -111,8 +112,10 @@ const loadTree = async (node: any, resolve: any) => {
111112
}
112113
await loadSharedApi({ type: 'knowledge', systemType: props.apiType })
113114
.getKnowledgeList(obj, optionLoading)
115+
.then((ok: any)=>ok.data)
116+
.then(props.postKnowledgeHandler)
114117
.then((res: any) => {
115-
resolve(res.data)
118+
resolve(res)
116119
})
117120
}
118121

ui/src/views/chat-log/component/EditContentDialog.vue

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,9 @@
5050
</el-form-item>
5151
</el-form>
5252
<SelectKnowledgeDocument
53+
v-if="detail.workspace_id"
5354
ref="SelectKnowledgeDocumentRef"
55+
:post-knowledge-handler="postKnowledgeHandler"
5456
:apiType="apiType"
5557
@changeKnowledge="changeKnowledge"
5658
@changeDocument="changeDocument"
@@ -75,6 +77,10 @@ import type { FormInstance, FormRules } from 'element-plus'
7577
import imageApi from '@/api/image'
7678
import { t } from '@/locales'
7779
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
80+
import { Permission } from '@/utils/permission/type'
81+
import { hasPermission } from '@/utils/permission'
82+
import { PermissionConst, RoleConst } from '@/utils/permission/data'
83+
7884
const route = useRoute()
7985
const {
8086
params: { id },
@@ -87,6 +93,18 @@ const apiType = computed(() => {
8793
}
8894
})
8995
96+
const postKnowledgeHandler = (knowledgeList: Array<any>) => {
97+
return knowledgeList.filter(item => {
98+
if (apiType.value === 'workspace') {
99+
return hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole(),
100+
new Permission("KNOWLEDGE_DOCUMENT:READ+EDIT").getWorkspacePermissionWorkspaceManageRole,
101+
new Permission("KNOWLEDGE_DOCUMENT:READ+EDIT").getWorkspaceResourcePermission('KNOWLEDGE', item.id)], 'OR')
102+
} else if (apiType.value === 'systemManage') {
103+
return hasPermission([RoleConst.ADMIN, PermissionConst.RESOURCE_KNOWLEDGE_DOCUMENT_EDIT],'OR')
104+
}
105+
})
106+
}
107+
90108
const emit = defineEmits(['refresh'])
91109
92110
const formRef = ref()
@@ -127,7 +145,6 @@ const SelectKnowledgeDocumentRef = ref()
127145
const dialogVisible = ref<boolean>(false)
128146
const loading = ref(false)
129147
const detail = ref<any>({})
130-
131148
const form = ref<any>({
132149
chat_id: '',
133150
record_id: '',

ui/src/views/chat-log/index.vue

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,7 @@
222222
:close-on-press-escape="false"
223223
>
224224
<SelectKnowledgeDocument
225+
:post-knowledge-handler="postKnowledgeHandler"
225226
ref="SelectKnowledgeDocumentRef"
226227
:apiType="apiType"
227228
:workspace-id="detail.workspace_id"
@@ -252,6 +253,10 @@ import { t } from '@/locales'
252253
import { ElTable } from 'element-plus'
253254
import permissionMap from '@/permission'
254255
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
256+
import { Permission } from '@/utils/permission/type'
257+
import { hasPermission } from '@/utils/permission'
258+
import { PermissionConst, RoleConst } from '@/utils/permission/data'
259+
255260
const route = useRoute()
256261
257262
const apiType = computed(() => {
@@ -349,7 +354,18 @@ const filter = ref<any>({
349354
min_trample: 0,
350355
comparer: 'and',
351356
})
352-
357+
const postKnowledgeHandler = (knowledgeList: Array<any>) => {
358+
return knowledgeList.filter(item => {
359+
if (apiType.value === 'workspace') {
360+
return hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole(),
361+
new Permission("KNOWLEDGE_DOCUMENT:READ+EDIT").getWorkspacePermissionWorkspaceManageRole,
362+
new Permission("KNOWLEDGE_DOCUMENT:READ+EDIT").getWorkspaceResourcePermission('KNOWLEDGE', item.id)], 'OR')
363+
} else if (apiType.value === 'systemManage') {
364+
return hasPermission([RoleConst.ADMIN, PermissionConst.RESOURCE_KNOWLEDGE_DOCUMENT_EDIT],'OR')
365+
}
366+
})
367+
368+
}
353369
function filterChange(val: string) {
354370
if (val === 'clear') {
355371
filter.value = cloneDeep(defaultFilter)

0 commit comments

Comments
 (0)