diff options
Diffstat (limited to 'src/fields/util.ts')
-rw-r--r-- | src/fields/util.ts | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/fields/util.ts b/src/fields/util.ts index 815f3b186..36f619120 100644 --- a/src/fields/util.ts +++ b/src/fields/util.ts @@ -240,7 +240,9 @@ export function distributeAcls(key: string, acl: SharingPermissions, target: Doc let dataDocChanged = false; const dataDoc = target[DocData]; - if (dataDoc && (allowUpgrade || !dataDoc[key] || ReverseHierarchyMap.get(StrCast(dataDoc[key]))! > ReverseHierarchyMap.get(acl)!)) { + const curVal = ReverseHierarchyMap.get(StrCast(dataDoc[key]))?.level ?? 0; + const aclVal = ReverseHierarchyMap.get(acl)?.level ?? 0; + if (dataDoc && (allowUpgrade || !dataDoc[key] || curVal > aclVal)) { // propagate ACLs to links, children, and annotations LinkManager.Links(dataDoc).forEach(link => distributeAcls(key, acl, link, visited, allowUpgrade)); |