mirror of
https://gitee.com/dolphinscheduler/DolphinScheduler.git
synced 2024-12-04 21:28:00 +08:00
[Fix][UI Next][V1.0.0-Alpha] Resource authorization failed (#9092)
* fix resources auth bug * support batch select for resource auth
This commit is contained in:
parent
d641c8d4ea
commit
0b2923d577
@ -20,7 +20,7 @@ export function removeUselessChildren(
|
||||
) {
|
||||
if (!list.length) return
|
||||
list.forEach((item) => {
|
||||
if (item.dirctory) item.disabled = true
|
||||
if (item.dirctory && item.children?.length === 0) item.disabled = true
|
||||
if (!item.children) return
|
||||
if (item.children.length === 0) {
|
||||
delete item.children
|
||||
|
@ -136,7 +136,7 @@ export function useAuthorize() {
|
||||
state.fileResources = fileResources
|
||||
state.udfResources = udfResources
|
||||
state.authorizedFileResources = fileTargets
|
||||
state.authorizedUdfResources = fileTargets
|
||||
state.authorizedUdfResources = udfTargets
|
||||
}
|
||||
|
||||
const onInit = (type: TAuthType, userId: number) => {
|
||||
@ -154,6 +154,36 @@ export function useAuthorize() {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
getParent
|
||||
*/
|
||||
const getParent = (data2: Array<number>, nodeId2: number) => {
|
||||
let arrRes: Array<any> = []
|
||||
if (data2.length === 0) {
|
||||
if (nodeId2) {
|
||||
arrRes.unshift(data2)
|
||||
}
|
||||
return arrRes
|
||||
}
|
||||
const rev = (data: Array<any>, nodeId: number) => {
|
||||
for (let i = 0, length = data.length; i < length; i++) {
|
||||
const node = data[i]
|
||||
if (node.id === nodeId) {
|
||||
arrRes.unshift(node)
|
||||
rev(data2, node.pid)
|
||||
break
|
||||
} else {
|
||||
if (node.children) {
|
||||
rev(node.children, nodeId)
|
||||
}
|
||||
}
|
||||
}
|
||||
return arrRes
|
||||
}
|
||||
arrRes = rev(data2, nodeId2)
|
||||
return arrRes
|
||||
}
|
||||
|
||||
const onSave = async (type: TAuthType, userId: number) => {
|
||||
if (state.saving) return false
|
||||
state.saving = true
|
||||
@ -176,12 +206,40 @@ export function useAuthorize() {
|
||||
})
|
||||
}
|
||||
if (type === 'authorize_resource') {
|
||||
let fullPathFileId = []
|
||||
const pathFileId: Array<string> = []
|
||||
state.authorizedFileResources.forEach((v: number) => {
|
||||
state.fileResources.forEach((v1: any) => {
|
||||
const arr = []
|
||||
arr[0] = v1
|
||||
if (getParent(arr, v).length > 0) {
|
||||
fullPathFileId = getParent(arr, v).map((v2: any) => {
|
||||
return v2.id
|
||||
})
|
||||
pathFileId.push(fullPathFileId.join('-'))
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
let fullPathUdfId = []
|
||||
const pathUdfId: Array<string> = []
|
||||
state.authorizedUdfResources.forEach((v: number) => {
|
||||
state.udfResources.forEach((v1: any) => {
|
||||
const arr = []
|
||||
arr[0] = v1
|
||||
if (getParent(arr, v).length > 0) {
|
||||
fullPathUdfId = getParent(arr, v).map((v2: any) => {
|
||||
return v2.id
|
||||
})
|
||||
pathUdfId.push(fullPathUdfId.join('-'))
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
const allPathId = pathFileId.concat(pathUdfId)
|
||||
await grantResource({
|
||||
userId,
|
||||
resourceIds:
|
||||
state.resourceType === 'file'
|
||||
? state.authorizedFileResources.join(',')
|
||||
: state.authorizedUdfResources.join(',')
|
||||
resourceIds: allPathId.join(',')
|
||||
})
|
||||
}
|
||||
state.saving = false
|
||||
|
Loading…
Reference in New Issue
Block a user