gristlabs_grist-core/app
Paul Fitzpatrick 0e2deecc55 (core) implement cleaner row-level access control for outgoing messages
Summary:
This implements row-level access control for outgoing messages, replacing the document reloading placeholder that was there before.

 * Prior to broadcasting messages, GranularAccess is notified of actions+undo.
 * While broadcasting messages to different sessions, if we find we need row level access control information, rows before and after the change are reconstructed.
 * Messages are rewritten if rows that were previously forbidden are now allowed, and vice versa.

The diff is somewhat under-tested and under-optimized. Next step would be to implement row-level access control for incoming actions, which may result in some rejiggering of the code from this diff to avoid duplication of effort under some conditions.

Test Plan: added test

Reviewers: dsagal

Reviewed By: dsagal

Differential Revision: https://phab.getgrist.com/D2670
2020-11-30 16:28:33 -05:00
..
client (core) Mark 'Compare to Original' menu item with the 'beta' tag 2020-11-27 08:10:17 -05:00
common (core) implement cleaner row-level access control for outgoing messages 2020-11-30 16:28:33 -05:00
gen-server (core) distinguish open public documents from listing them 2020-11-27 09:56:25 -05:00
plugin (core) hide long sequences of unchanged rows in diffs 2020-11-19 18:19:54 -05:00
server (core) implement cleaner row-level access control for outgoing messages 2020-11-30 16:28:33 -05:00
tsconfig.json (core) move home server into core 2020-07-21 20:39:10 -04:00