diff options
author | geireann <geireann.lindfield@gmail.com> | 2023-07-10 12:00:31 -0400 |
---|---|---|
committer | geireann <geireann.lindfield@gmail.com> | 2023-07-10 12:00:31 -0400 |
commit | 2f4c55bf026a249910e90451a173234934ebca01 (patch) | |
tree | 154b80a70a12556fcb4e547051142cfb54d22def | |
parent | a60fbbe02f0ff26ef04ce8b44695a82673164270 (diff) |
fixed sharing to a user to allow upgrading credentials.
-rw-r--r-- | src/client/util/SharingManager.tsx | 6 | ||||
-rw-r--r-- | src/client/views/DashboardView.scss | 5 | ||||
-rw-r--r-- | src/client/views/DocComponent.tsx | 2 | ||||
-rw-r--r-- | src/client/views/collections/CollectionDockingView.tsx | 8 | ||||
-rw-r--r-- | src/fields/util.ts | 12 |
5 files changed, 18 insertions, 15 deletions
diff --git a/src/client/util/SharingManager.tsx b/src/client/util/SharingManager.tsx index 828271270..37c813279 100644 --- a/src/client/util/SharingManager.tsx +++ b/src/client/util/SharingManager.tsx @@ -160,7 +160,7 @@ export class SharingManager extends React.Component<{}> { const acl = `acl-${normalizeEmail(user.email)}`; const docs = SelectionManager.Views().length < 2 ? [target] : SelectionManager.Views().map(docView => docView.rootDoc); docs.map(doc => (this.layoutDocAcls ? doc : Doc.GetProto(doc))).forEach(doc => { - distributeAcls(acl, permission as SharingPermissions, doc); + distributeAcls(acl, permission as SharingPermissions, doc, undefined, this.overrideNested ? true : undefined); if (permission !== SharingPermissions.None) Doc.AddDocToList(sharingDoc, storage, doc); else GetEffectiveAcl(doc, user.email) === AclPrivate && Doc.RemoveDocFromList(sharingDoc, storage, (doc.createdFrom as Doc) || doc); }); @@ -177,7 +177,7 @@ export class SharingManager extends React.Component<{}> { const docs = SelectionManager.Views().length < 2 ? [target] : SelectionManager.Views().map(docView => docView.rootDoc); docs.map(doc => (this.layoutDocAcls ? doc : Doc.GetProto(doc))).forEach(doc => { - distributeAcls(acl, permission as SharingPermissions, doc, undefined, this.overrideNested); + distributeAcls(acl, permission as SharingPermissions, doc, undefined, this.overrideNested ? true : undefined); if (group instanceof Doc) { Doc.AddDocToList(group, 'docsShared', doc); @@ -227,7 +227,7 @@ export class SharingManager extends React.Component<{}> { } else { docs.forEach(doc => { if (GetEffectiveAcl(doc) === AclAdmin) { - distributeAcls(`acl-${shareWith}`, permission, doc, undefined, true); + distributeAcls(`acl-${shareWith}`, permission, doc, undefined); } }); } diff --git a/src/client/views/DashboardView.scss b/src/client/views/DashboardView.scss index 583edac08..4551fb4f4 100644 --- a/src/client/views/DashboardView.scss +++ b/src/client/views/DashboardView.scss @@ -7,6 +7,8 @@ width: 100%; position: absolute; height: 100%; + width:100%; + padding-right: 0px; overflow: auto; .left-menu { @@ -21,7 +23,8 @@ display: flex; flex-direction: row; flex-wrap: wrap; - overflow-y: scroll; + overflow-y: auto; + width: 100%; } } diff --git a/src/client/views/DocComponent.tsx b/src/client/views/DocComponent.tsx index 422d2d6d7..10985c3f1 100644 --- a/src/client/views/DocComponent.tsx +++ b/src/client/views/DocComponent.tsx @@ -197,7 +197,7 @@ export function ViewBoxAnnotatableComponent<P extends ViewBoxAnnotatableProps>() const permissionString = StrCast(Doc.GetProto(this.props.Document)[key]); const permissionSymbol = ReverseHierarchyMap.get(permissionString)?.acl; const permission = permissionSymbol && HierarchyMapping.get(permissionSymbol)?.name; - distributeAcls(key, permission ?? SharingPermissions.Augment, d); + distributeAcls(key, permission ?? SharingPermissions.Augment, d, undefined, false); }) ); diff --git a/src/client/views/collections/CollectionDockingView.tsx b/src/client/views/collections/CollectionDockingView.tsx index 77b719d53..13d3b2cdc 100644 --- a/src/client/views/collections/CollectionDockingView.tsx +++ b/src/client/views/collections/CollectionDockingView.tsx @@ -2,13 +2,13 @@ import { action, IReactionDisposer, observable, reaction, runInAction } from 'mo import { observer } from 'mobx-react'; import * as ReactDOM from 'react-dom/client'; import * as GoldenLayout from '../../../client/goldenLayout'; -import { Doc, DocListCast, HierarchyMapping, Opt, ReverseHierarchyMap } from '../../../fields/Doc'; +import { Doc, DocListCast, Opt } from '../../../fields/Doc'; import { Id } from '../../../fields/FieldSymbols'; import { InkTool } from '../../../fields/InkField'; import { List } from '../../../fields/List'; import { ImageCast, NumCast, StrCast } from '../../../fields/Types'; import { ImageField } from '../../../fields/URLField'; -import { distributeAcls, GetEffectiveAcl, GetPropAcl, inheritParentAcls } from '../../../fields/util'; +import { GetEffectiveAcl, inheritParentAcls } from '../../../fields/util'; import { emptyFunction, incrementTitleCopy } from '../../../Utils'; import { DocServer } from '../../DocServer'; import { Docs } from '../../documents/Documents'; @@ -28,9 +28,9 @@ import './CollectionDockingView.scss'; import { CollectionFreeFormView } from './collectionFreeForm'; import { CollectionSubView, SubCollectionViewProps } from './CollectionSubView'; import { TabDocView } from './TabDocView'; -import React = require('react'); import { DocumentManager } from '../../util/DocumentManager'; -import { AclAdmin, AclEdit, DocAcl } from '../../../fields/DocSymbols'; +import { AclAdmin, AclEdit } from '../../../fields/DocSymbols'; +import React = require('react'); const _global = (window /* browser */ || global) /* node */ as any; @observer diff --git a/src/fields/util.ts b/src/fields/util.ts index 4dcbf1fbe..034229319 100644 --- a/src/fields/util.ts +++ b/src/fields/util.ts @@ -243,19 +243,19 @@ export function distributeAcls(key: string, acl: SharingPermissions, target: Doc const dataDoc = target[DocData]; const curVal = ReverseHierarchyMap.get(StrCast(dataDoc[key]))?.level ?? 0; const aclVal = ReverseHierarchyMap.get(acl)?.level ?? 0; - if (dataDoc && (allowUpgrade || !dataDoc[key] || curVal > aclVal)) { + if (dataDoc && (allowUpgrade !== false|| !dataDoc[key] || curVal > aclVal)) { // propagate ACLs to links, children, and annotations - LinkManager.Links(dataDoc).forEach(link => distributeAcls(key, acl, link, visited, allowUpgrade)); + LinkManager.Links(dataDoc).forEach(link => distributeAcls(key, acl, link, visited, allowUpgrade? true: false)); DocListCast(dataDoc[Doc.LayoutFieldKey(dataDoc)]).forEach(d => { - distributeAcls(key, acl, d, visited, allowUpgrade); - d !== d[DocData] && distributeAcls(key, acl, d[DocData], visited, allowUpgrade); + distributeAcls(key, acl, d, visited, allowUpgrade ? true: false); + d !== d[DocData] && distributeAcls(key, acl, d[DocData], visited, allowUpgrade ? true: false); }); DocListCast(dataDoc[Doc.LayoutFieldKey(dataDoc) + '_annotations']).forEach(d => { - distributeAcls(key, acl, d, visited, allowUpgrade); - d !== d[DocData] && distributeAcls(key, acl, d[DocData], visited, allowUpgrade); + distributeAcls(key, acl, d, visited, allowUpgrade? true: false); + d !== d[DocData] && distributeAcls(key, acl, d[DocData], visited, allowUpgrade? true: false); }); if (GetEffectiveAcl(dataDoc) === AclAdmin) { |