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