aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client/views/MainView.tsx2
-rw-r--r--src/client/views/collections/CollectionDockingView.tsx9
-rw-r--r--src/fields/util.ts4
3 files changed, 4 insertions, 11 deletions
diff --git a/src/client/views/MainView.tsx b/src/client/views/MainView.tsx
index b708e2587..59636ccbe 100644
--- a/src/client/views/MainView.tsx
+++ b/src/client/views/MainView.tsx
@@ -153,8 +153,8 @@ export class MainView extends React.Component {
}
this._sidebarContent.proto = undefined;
if (!MainView.Live) {
- DocServer.setPlaygroundFields(['dockingConfig']);
DocServer.setLivePlaygroundFields([
+ 'dockingConfig',
'dataTransition',
'viewTransition',
'treeViewOpen',
diff --git a/src/client/views/collections/CollectionDockingView.tsx b/src/client/views/collections/CollectionDockingView.tsx
index 30bc8cbec..77b719d53 100644
--- a/src/client/views/collections/CollectionDockingView.tsx
+++ b/src/client/views/collections/CollectionDockingView.tsx
@@ -500,15 +500,6 @@ export class CollectionDockingView extends CollectionSubView() {
}
};
tabCreated = (tab: any) => {
- const aclKeys = Object.keys(Doc.GetProto(this.rootDoc)[DocAcl] ?? {});
- aclKeys
- .filter(key => key !== 'acl-Me')
- .forEach(key => {
- const permissionString = StrCast(Doc.GetProto(this.props.Document)[key]);
- const permissionSymbol = ReverseHierarchyMap.get(permissionString)!.acl;
- const permission = HierarchyMapping.get(permissionSymbol)!.name;
- distributeAcls(key, permission, tab);
- });
this.tabMap.add(tab);
tab.contentItem.element[0]?.firstChild?.firstChild?.InitTab?.(tab); // have to explicitly initialize tabs that reuse contents from previous tabs (ie, when dragging a tab around a new tab is created for the old content)
};
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));