aboutsummaryrefslogtreecommitdiff
path: root/src/fields/util.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/fields/util.ts')
-rw-r--r--src/fields/util.ts4
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));