From 37089281d5283d685e39ce922d2fe89e4c78f0d4 Mon Sep 17 00:00:00 2001 From: usodhi <61431818+usodhi@users.noreply.github.com> Date: Thu, 24 Sep 2020 23:17:12 +0530 Subject: shifted override location in geteffectiveacl --- src/fields/util.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/fields/util.ts b/src/fields/util.ts index fa1c47055..c055be132 100644 --- a/src/fields/util.ts +++ b/src/fields/util.ts @@ -173,11 +173,6 @@ export function GetEffectiveAcl(target: any, in_prop?: string | symbol | number, // if the acl is being overriden or the property being modified is one of the playground fields (which can be freely modified) if (_overrideAcl || (in_prop && DocServer.PlaygroundFields?.includes(in_prop.toString()))) return AclEdit; - // if there's an overriding acl set through the properties panel or sharing menu, that's what's returned. - // if it's unset, it just goes ahead - const override = target[AclSym]["acl-Override"]; - if (override !== AclUnset && override !== undefined) return target[AclSym]["acl-Override"]; - let effectiveAcl = AclPrivate; const HierarchyMapping = new Map([ [AclPrivate, 0], @@ -198,6 +193,12 @@ export function GetEffectiveAcl(target: any, in_prop?: string | symbol | number, } } } + + // if there's an overriding acl set through the properties panel or sharing menu, that's what's returned. + // if it's unset, it just goes ahead + const override = target[AclSym]["acl-Override"]; + if (override !== AclUnset && override !== undefined) effectiveAcl = target[AclSym]["acl-Override"]; + // if we're in playground mode, return AclEdit (or AclAdmin if that's the user's effectiveAcl) return DocServer?.Control?.isReadOnly?.() && HierarchyMapping.get(effectiveAcl)! < 3 ? AclEdit : effectiveAcl; } -- cgit v1.2.3-70-g09d2 From bc45c96768a24a5c9b9735d610d407e856b05744 Mon Sep 17 00:00:00 2001 From: usodhi <61431818+usodhi@users.noreply.github.com> Date: Fri, 25 Sep 2020 01:29:05 +0530 Subject: override related changes. more to go --- src/client/views/PropertiesView.tsx | 1 + src/fields/util.ts | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/client/views/PropertiesView.tsx b/src/client/views/PropertiesView.tsx index 9209cc21a..6aad94131 100644 --- a/src/client/views/PropertiesView.tsx +++ b/src/client/views/PropertiesView.tsx @@ -320,6 +320,7 @@ export class PropertiesView extends React.Component { getPermissionsSelect(user: string, permission: string) { const dropdownValues: string[] = Object.values(SharingPermissions); if (permission === "-multiple-") dropdownValues.unshift(permission); + if (name === "Override") dropdownValues.unshift("Unset"); return this.changePermissions(e, user)}> @@ -381,7 +381,7 @@ export class PropertiesView extends React.Component { */ @computed get sharingTable() { const AclMap = new Map([ - [AclUnset, "unset"], + [AclUnset, "None"], [AclPrivate, SharingPermissions.None], [AclReadonly, SharingPermissions.View], [AclAddonly, SharingPermissions.Add], @@ -425,7 +425,7 @@ export class PropertiesView extends React.Component { const ownerSame = Doc.CurrentUserEmail !== target.author && docs.filter(doc => doc).every(doc => doc.author === docs[0].author); // shifts the current user, owner, public to the top of the doc. - tableEntries.unshift(this.sharingItem("Override", showAdmin, docs.filter(doc => doc).every(doc => doc["acl-Override"] === docs[0]["acl-Override"]) ? (AclMap.get(target[AclSym]?.["acl-Override"]) || "unset") : "-multiple-")); + tableEntries.unshift(this.sharingItem("Override", showAdmin, docs.filter(doc => doc).every(doc => doc["acl-Override"] === docs[0]["acl-Override"]) ? (AclMap.get(target[AclSym]?.["acl-Override"]) || "None") : "-multiple-")); tableEntries.unshift(this.sharingItem("Public", showAdmin, docs.filter(doc => doc).every(doc => doc["acl-Public"] === docs[0]["acl-Public"]) ? (AclMap.get(target[AclSym]?.["acl-Public"]) || SharingPermissions.None) : "-multiple-")); tableEntries.unshift(this.sharingItem("Me", showAdmin, docs.filter(doc => doc).every(doc => doc.author === Doc.CurrentUserEmail) ? "Owner" : effectiveAcls.every(acl => acl === effectiveAcls[0]) ? AclMap.get(effectiveAcls[0])! : "-multiple-", !ownerSame)); if (ownerSame) tableEntries.unshift(this.sharingItem(StrCast(target.author), showAdmin, "Owner")); diff --git a/src/fields/Doc.ts b/src/fields/Doc.ts index 205831153..a4cf0a826 100644 --- a/src/fields/Doc.ts +++ b/src/fields/Doc.ts @@ -113,7 +113,7 @@ export const UpdatingFromServer = Symbol("UpdatingFromServer"); export const CachedUpdates = Symbol("Cached updates"); const AclMap = new Map([ - ["unset", AclUnset], + ["None", AclUnset], [SharingPermissions.None, AclPrivate], [SharingPermissions.View, AclReadonly], [SharingPermissions.Add, AclAddonly], @@ -124,7 +124,7 @@ const AclMap = new Map([ export function fetchProto(doc: Doc) { const permissions: { [key: string]: symbol } = {}; - Object.keys(doc).filter(key => key.startsWith("acl")).forEach(key => permissions[key] = AclMap.get(StrCast(doc[key]))!); + Object.keys(doc).filter(key => key.startsWith("acl") && (permissions[key] = AclMap.get(StrCast(doc[key]))!)); if (Object.keys(permissions).length) doc[AclSym] = permissions; diff --git a/src/fields/util.ts b/src/fields/util.ts index 20ba1ca39..989166bf8 100644 --- a/src/fields/util.ts +++ b/src/fields/util.ts @@ -280,7 +280,7 @@ export function setter(target: any, in_prop: string | symbol | number, value: an if (effectiveAcl !== AclEdit && 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, "unset"].includes(value))) return true; + if (typeof prop === "string" && prop.startsWith("acl") && (effectiveAcl !== AclAdmin || ![...Object.values(SharingPermissions), undefined, "None"].includes(value))) return true; // if (typeof prop === "string" && prop.startsWith("acl") && !["Can Edit", "Can Add", "Can View", "Not Shared", undefined].includes(value)) return true; if (typeof prop === "string" && prop !== "__id" && prop !== "__fields" && (prop.startsWith("_") || layoutProps.includes(prop))) { -- cgit v1.2.3-70-g09d2 From 5b95cf139f88badb99e2852c8201a950f8771602 Mon Sep 17 00:00:00 2001 From: usodhi <61431818+usodhi@users.noreply.github.com> Date: Fri, 25 Sep 2020 16:44:47 +0530 Subject: more css --- src/client/views/PropertiesView.scss | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/client/views/PropertiesView.scss b/src/client/views/PropertiesView.scss index e5f9e0417..47d8aacea 100644 --- a/src/client/views/PropertiesView.scss +++ b/src/client/views/PropertiesView.scss @@ -246,15 +246,20 @@ } } - .expansion-button-icon { - width: 11px; - height: 11px; - color: black; - margin-left: 27px; + .expansion-button { + margin-left: -22.5; + margin: 3; - &:hover { - color: rgb(131, 131, 131); - cursor: pointer; + .expansion-button-icon { + width: 11px; + height: 11px; + color: black; + margin-left: 27px; + + &:hover { + color: rgb(131, 131, 131); + cursor: pointer; + } } } @@ -305,9 +310,9 @@ .permissions-select { border: none; background-color: inherit; - width: 75px; - //text-align: justify; // for Edge - //text-align-last: end; + width: 87px; + text-align: justify; // for Edge + text-align-last: end; &:hover { cursor: pointer; -- cgit v1.2.3-70-g09d2