gristlabs_grist-core/app/server/lib
Paul Fitzpatrick 95cc2eb282 (core) read document as owner in pre-fork mode, if have sufficient access to it
Summary:
This tweaks pre-fork mode to make the user's experience a bit more seamless.
Pre-fork mode is where the user has opened a document with intent to
fork it, but actual forking (with allocation of a new document id)
is postponed until they make their first change.

The tweak makes the user an owner for granular access purposes, if
forking is permitted.  So data visible only to owners because of
access rules will be visible to them.  As always, any edits would
go to a separate new copy.

A remaining tricky corner is what to do about "View As" functionality
on forks.  Fork sharing cannot be controlled, so the "Users -> View As"
functionality isn't available.  Perhaps the "Users" button on a fork
could encourage doing a save-copy and inviting users, or offer some
dummy users?  In any case, this diff doesn't change anything with
that corner.

Test Plan: added test

Reviewers: dsagal

Reviewed By: dsagal

Differential Revision: https://phab.getgrist.com/D2931
2021-07-21 14:52:31 -04:00
..
ACLFormula.ts (core) add OWNERS='owners', EDITOR='editors', VIEWER='viewers' to condition formulas 2021-03-19 18:20:33 -04:00
ActionHistory.ts (core) add endpoints for clearing snapshots and actions 2020-12-18 13:32:31 -05:00
ActionHistoryImpl.ts (core) When parsing ActionHistory into ActionGroups, avoid keeping many large actions in memory. 2020-09-19 20:45:33 -04:00
ActionSummary.ts (core) tolerate table renames when displaying differences 2020-11-12 10:55:15 -05:00
ActiveDoc.ts (core) read document as owner in pre-fork mode, if have sufficient access to it 2021-07-21 14:52:31 -04:00
ActiveDocImport.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
AppEndpoint.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
Authorizer.ts (core) Fix session handling when redirected to login when visiting a doc on a team site 2021-07-15 17:51:16 -04:00
BrowserSession.ts (core) Remove LoginSession, which was mainly serving situations that are no longer used. 2021-07-12 13:04:00 -04:00
checksumFile.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
Client.ts (core) Remove LoginSession, which was mainly serving situations that are no longer used. 2021-07-12 13:04:00 -04:00
Comm.js (core) Remove LoginSession, which was mainly serving situations that are no longer used. 2021-07-12 13:04:00 -04:00
dbUtils.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
DocApi.ts (core) Export to Excel and Send to drive 2021-07-21 16:36:00 +02:00
DocClients.ts (core) granular access control in the presence of schema changes 2021-03-01 13:49:31 -05:00
DocManager.ts (core) read document as owner in pre-fork mode, if have sufficient access to it 2021-07-21 14:52:31 -04:00
DocPluginData.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
DocPluginManager.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
DocSession.ts (core) read document as owner in pre-fork mode, if have sufficient access to it 2021-07-21 14:52:31 -04:00
DocSnapshots.ts (core) start reconciling forking with granular access 2021-01-12 14:08:49 -05:00
DocStorage.ts (core) start applying defenses for untrusted document uploads 2021-07-14 18:34:27 -04:00
DocStorageManager.ts (core) uncheck FullCopy special when copying/forking a document 2021-04-29 08:56:54 -04:00
docUtils.d.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
docUtils.js (core) move home server into core 2020-07-21 20:39:10 -04:00
DocWorker.ts (core) Export to Excel and Send to drive 2021-07-21 16:36:00 +02:00
DocWorkerMap.ts (core) support GRIST_WORKER_GROUP to place worker into an exclusive group 2020-11-02 15:46:46 -05:00
ExcelFormatter.ts (core) Export to Excel and Send to drive 2021-07-21 16:36:00 +02:00
ExpandedQuery.ts (core) Fix 'table not found' error when converting columns in the presence of per-row ACL rules. 2021-02-10 09:22:34 -05:00
Export.ts (core) Export to Excel and Send to drive 2021-07-21 16:36:00 +02:00
ExportCSV.ts (core) Export to Excel and Send to drive 2021-07-21 16:36:00 +02:00
ExportXLSX.ts (core) Google auth endpoint has not responded with auth code 2021-07-21 20:18:04 +02:00
expressWrap.ts (core) give more detailed reasons for access denied when memos are present 2021-02-15 17:02:24 -05:00
ExternalStorage.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
extractOrg.ts (core) Refactoring google drive plugin 2021-07-14 09:52:04 +02:00
FileParserElement.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
filterUtils.ts (core) uncheck FullCopy special when copying/forking a document 2021-04-29 08:56:54 -04:00
FlexServer.ts (core) Google auth endpoint has not responded with auth code 2021-07-21 20:18:04 +02:00
GoogleAuth.ts (core) Google auth endpoint has not responded with auth code 2021-07-21 20:18:04 +02:00
GoogleExport.ts (core) Export to Excel and Send to drive 2021-07-21 16:36:00 +02:00
GranularAccess.ts (core) read document as owner in pre-fork mode, if have sufficient access to it 2021-07-21 14:52:31 -04:00
GristServer.ts (core) add appsumo endpoints with stub implementations 2021-06-21 16:04:33 -04:00
gristSessions.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
guessExt.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
HashUtil.ts (core) add more detail to /compare endpoint 2020-09-18 16:31:29 -04:00
HostedMetadataManager.ts (core) revamp snapshot inventory 2020-10-30 13:52:46 -04:00
HostedStorageManager.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
IBilling.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
IChecksumStore.ts (core) revamp snapshot inventory 2020-10-30 13:52:46 -04:00
ICreate.ts (core) Remove LoginSession, which was mainly serving situations that are no longer used. 2021-07-12 13:04:00 -04:00
IDocStorageManager.ts (core) uncheck FullCopy special when copying/forking a document 2021-04-29 08:56:54 -04:00
idUtils.ts (core) start reconciling forking with granular access 2021-01-12 14:08:49 -05:00
IElectionStore.ts (core) move some material to core that slipped through in a rebase 2020-07-23 11:29:05 -04:00
INotifier.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
ISandbox.ts (core) add SELF_HYPERLINK() function for generating links to the current document 2021-03-18 19:37:07 -04:00
IShell.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
ITestingHooks-ti.ts (core) Remove a bunch of dead code 2021-07-01 18:38:21 +02:00
ITestingHooks.ts (core) Remove a bunch of dead code 2021-07-01 18:38:21 +02:00
log.ts (core) give instructions on using Grist with docker 2020-10-28 13:59:13 -04:00
manifest.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
NSandbox.ts (core) communicate with sandbox via standard pipes 2021-07-12 06:45:47 -04:00
OnDemandActions.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
PermissionInfo.ts (core) Add 'user' variable to trigger formulas 2021-07-15 15:18:32 -07:00
Permit.ts (core) start reconciling forking with granular access 2021-01-12 14:08:49 -05:00
places.ts (core) fix docker packaging after core shuffle 2020-07-22 14:45:42 -04:00
PluginEndpoint.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
PluginManager.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
requestUtils.ts (core) add docs.options column to home db to store doc description, icon, openMode 2021-07-15 21:51:05 -04:00
RowAccess.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
SafePythonComponent.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
sandboxUtil.js (core) move home server into core 2020-07-21 20:39:10 -04:00
sendAppPage.ts (core) Google auth endpoint has not responded with auth code 2021-07-21 20:18:04 +02:00
ServerColumnGetters.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
serverUtils.ts (core) start applying defenses for untrusted document uploads 2021-07-14 18:34:27 -04:00
Sessions.ts (core) Remove LoginSession, which was mainly serving situations that are no longer used. 2021-07-12 13:04:00 -04:00
Sharing.ts (core) Add 'user' variable to trigger formulas 2021-07-15 15:18:32 -07:00
shortDesc.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
shutdown.js (core) move home server into core 2020-07-21 20:39:10 -04:00
SQLiteDB.ts (core) revamp snapshot inventory 2020-10-30 13:52:46 -04:00
TagChecker.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
TestingHooks.ts (core) Remove LoginSession, which was mainly serving situations that are no longer used. 2021-07-12 13:04:00 -04:00
Throttle.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
TimeQuery.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
UnsafeNodeComponent.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
uploads.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
WorkCoordinator.ts (core) move home server into core 2020-07-21 20:39:10 -04:00