diff options
author | srichman333 <sarah_n_richman@brown.edu> | 2023-05-04 10:46:20 -0400 |
---|---|---|
committer | srichman333 <sarah_n_richman@brown.edu> | 2023-05-04 10:46:20 -0400 |
commit | 50876028b994044f2a9426a4efb85a363f0d7168 (patch) | |
tree | 00c3c0ccc93603a980da1cfa13fd6cec331f036d /src/fields/util.ts | |
parent | d1e4d4a9daae4f037cf8b22e1011d97680a01e27 (diff) |
properties view + sharing manager are consistent, and all text updates properly
Diffstat (limited to 'src/fields/util.ts')
-rw-r--r-- | src/fields/util.ts | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/fields/util.ts b/src/fields/util.ts index c1e1a7111..b0ad4db5d 100644 --- a/src/fields/util.ts +++ b/src/fields/util.ts @@ -14,7 +14,6 @@ import { aclLevel, AclPrivate, AclReadonly, - AclSelfEdit, AclSym, DataSym, Doc, @@ -87,7 +86,7 @@ const _setterImpl = action(function (target: any, prop: string | symbol | number const fromServer = target[UpdatingFromServer]; const sameAuthor = fromServer || receiver.author === Doc.CurrentUserEmail; const writeToDoc = sameAuthor || effectiveAcl === AclEdit || effectiveAcl === AclAugment || effectiveAcl === AclAdmin || writeMode !== DocServer.WriteMode.LiveReadonly; - const writeToServer = (sameAuthor || effectiveAcl === AclEdit || effectiveAcl === AclAugment || effectiveAcl === AclAdmin || (effectiveAcl === AclSelfEdit && value instanceof RichTextField)) && !DocServer.Control.isReadOnly(); + const writeToServer = (sameAuthor || effectiveAcl === AclEdit || effectiveAcl === AclAugment || effectiveAcl === AclAdmin ) && !DocServer.Control.isReadOnly(); if (writeToDoc) { if (value === undefined) { @@ -171,7 +170,6 @@ export enum SharingPermissions { Unset = 'None', Admin = 'Admin', Edit = 'Edit', - SelfEdit = 'Self-Edit', Augment = 'Augment', View = 'View', None = 'Not-Shared', @@ -330,7 +328,7 @@ export function distributeAcls(key: string, acl: SharingPermissions, target: Doc export function setter(target: any, in_prop: string | symbol | number, value: any, receiver: any): boolean { let prop = in_prop; const effectiveAcl = in_prop === 'constructor' || typeof in_prop === 'symbol' ? AclAdmin : getPropAcl(target, prop); - if (effectiveAcl !== AclEdit && effectiveAcl !== AclAugment && effectiveAcl !== AclAdmin && !(effectiveAcl === AclSelfEdit && value instanceof RichTextField)) return true; + if (effectiveAcl !== AclEdit && effectiveAcl !== AclAugment && effectiveAcl !== AclAdmin ) return true; // if you're trying to change an acl but don't have Admin access / you're trying to change it to something that isn't an acceptable acl, you can't if (typeof prop === 'string' && prop.startsWith('acl') && (effectiveAcl !== AclAdmin || ![...Object.values(SharingPermissions), undefined].includes(value))) return true; |