aboutsummaryrefslogtreecommitdiff
path: root/src/fields/Doc.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/fields/Doc.ts')
-rw-r--r--src/fields/Doc.ts10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/fields/Doc.ts b/src/fields/Doc.ts
index b8ac8fb5d..7cc7e0d2a 100644
--- a/src/fields/Doc.ts
+++ b/src/fields/Doc.ts
@@ -107,7 +107,6 @@ export const AclUnset = Symbol('AclUnset');
export const AclPrivate = Symbol('AclOwnerOnly');
export const AclReadonly = Symbol('AclReadOnly');
export const AclAugment = Symbol('AclAugment');
-export const AclSelfEdit = Symbol('AclSelfEdit');
export const AclEdit = Symbol('AclEdit');
export const AclAdmin = Symbol('AclAdmin');
export const UpdatingFromServer = Symbol('UpdatingFromServer');
@@ -120,7 +119,6 @@ export enum aclLevel {
unshared = 0,
viewable = 1,
augmentable = 2,
- selfEditable = 2.5,
editable = 3,
admin = 4,
}
@@ -129,7 +127,6 @@ export const HierarchyMapping: Map<symbol, { level:aclLevel; name: SharingPermis
[AclPrivate, { level: aclLevel.unshared, name: SharingPermissions.None }],
[AclReadonly, { level: aclLevel.viewable, name: SharingPermissions.View }],
[AclAugment, { level: aclLevel.augmentable, name: SharingPermissions.Augment}],
- [AclSelfEdit, { level: aclLevel.selfEditable, name: SharingPermissions.SelfEdit }],
[AclEdit, { level: aclLevel.editable, name: SharingPermissions.Edit }],
[AclAdmin, { level: aclLevel.admin, name: SharingPermissions.Admin }],
[AclUnset, { level: aclLevel.unset, name: SharingPermissions.Unset }],
@@ -140,7 +137,6 @@ export const ReverseHierarchyMap: Map<string, { level: aclLevel; acl: symbol }>
// this recursively updates all protos as well.
export function updateCachedAcls(doc: Doc) {
if (!doc) return;
-
const target = (doc as any)?.__fields ?? doc;
const permissions: { [key: string]: symbol } = !target.author || target.author === Doc.CurrentUserEmail ? { 'acl-Me': AclAdmin } : {};
Object.keys(target).filter(key => key.startsWith('acl') && (permissions[key] = ReverseHierarchyMap.get(StrCast(target[key]))!.acl));
@@ -1086,7 +1082,7 @@ export namespace Doc {
target[targetKey] = new PrefetchProxy(templateDoc);
} else {
titleTarget && (Doc.GetProto(target).title = titleTarget);
- const setDoc = [AclAdmin, AclEdit].includes(GetEffectiveAcl(Doc.GetProto(target))) ? Doc.GetProto(target) : target;
+ const setDoc = [AclAdmin, AclEdit, AclAugment].includes(GetEffectiveAcl(Doc.GetProto(target))) ? Doc.GetProto(target) : target;
setDoc[targetKey] = new PrefetchProxy(templateDoc);
}
}
@@ -1265,7 +1261,9 @@ export namespace Doc {
}
// don't bother memoizing (caching) the result if called from a non-reactive context. (plus this avoids a warning message)
export function IsBrushedDegreeUnmemoized(doc: Doc) {
- if (!doc || GetEffectiveAcl(doc) === AclPrivate || GetEffectiveAcl(Doc.GetProto(doc)) === AclPrivate || doc.opacity === 0) return DocBrushStatus.unbrushed;
+ if (!doc || GetEffectiveAcl(doc) === AclPrivate || GetEffectiveAcl(Doc.GetProto(doc)) === AclPrivate || doc.opacity === 0) {
+ return DocBrushStatus.unbrushed;
+ }
const status = brushManager.BrushedDoc.has(doc) ? DocBrushStatus.selfBrushed : brushManager.BrushedDoc.has(Doc.GetProto(doc)) ? DocBrushStatus.protoBrushed : DocBrushStatus.unbrushed;
if (status === DocBrushStatus.unbrushed) {
const lastBrushed = Array.from(brushManager.BrushedDoc.keys()).lastElement();