gristlabs_grist-core/app/client/models
Alex Hall ecf2fdf71a (core) Fix summary table titles and linking when source table is hidden by ACL
Summary:
Two summary table widgets that share a source table and have compatible groupby columns can be filter linked. This diff fixes a bug where this linking is broken when the source table is hidden by access rules. The source table data isn't needed for the linking, but its metadata is, and that metadata is censored by GranularAccess. To deal with this:

- `LinkConfig._assertValid` allows blank `tableId`s specifically for linking two summary tables.
- `LinkingState.filterColValues` gets the `colId`s of groupby columns from the summary table columns rather than the source table.

A closely related problem is that the titles of summary tables are incomplete when the source table is hidden, e.g. they just say `[by A]` instead of `Table1 [by A]`. To fix this, the raw view sections of source tables are 'uncensored' in GranularAccess.

Initially I also planned to uncensor the tableId of the source table, which seemed like a better and more general fix for the blank tableId problem. But several parts of client code use blank tableIds to know that a table should be hidden, so they were left as is.

Test Plan: Added an nbrowser test for summary table linking, and a server test for uncensoring the raw view section in GranularAccess.

Reviewers: georgegevoian, paulfitz

Reviewed By: georgegevoian, paulfitz

Subscribers: paulfitz

Differential Revision: https://phab.getgrist.com/D3608
2022-09-01 19:14:47 +02:00
..
entities (core) Fix summary table titles and linking when source table is hidden by ACL 2022-09-01 19:14:47 +02:00
AppModel.ts (core) Removing NEW_DEAL flag 2022-08-09 17:29:28 +02:00
BaseRowModel.js (core) Update ACL resources/rules when tables/columns get renamed 2021-01-04 22:03:01 -05:00
ClientColumnGetters.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
ColumnACIndexes.ts Rename text cleaning function to "normalizeText" 2022-08-17 19:11:52 +02:00
ColumnCache.ts (core) Show count of formula errors in the column config in the right-side panel. 2021-04-20 21:26:17 -04:00
ColumnFilter.ts (core) Adds new range filter for numeric columns 2022-05-30 10:30:16 +02:00
ColumnFilterMenuModel.ts (core) Fix values ordering in column filter menu 2022-05-24 16:30:28 +02:00
ColumnToMap.ts add a description property to column mapping for custom widgets (#255) 2022-08-26 08:25:34 -04:00
ConnectState.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
DataRowModel.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
DataTableModel.js (core) move client code to core 2020-10-02 13:24:21 -04:00
DataTableModelWithDiff.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
DocData.ts (core) Wait for transform column before finalizing 2022-03-01 13:59:14 -08:00
DocModel.ts (core) Show summary tables on Raw Data page 2022-07-06 09:41:48 -07:00
DocPageModel.ts (core) Broadcast doc usage updates to clients 2022-06-06 09:55:34 -07:00
errors.ts (core) Improve debug logging related for client-side errors and sandbox crashes. 2022-04-11 17:54:40 -04:00
gristConfigCache.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
gristUrlState.ts (core) Add basic activation page to grist-ee 2022-08-23 10:30:52 -07:00
HomeModel.ts (core) Welcome intro for viewers on a team site. 2022-08-03 12:50:14 +02:00
MetaRowModel.js (core) move client code to core 2020-10-02 13:24:21 -04:00
MetaTableModel.js (core) Raw renames 2022-04-27 22:21:55 +02:00
modelUtil.js (core) move client code to core 2020-10-02 13:24:21 -04:00
NotifyModel.ts (core) Error message on Duplicate Document 2021-11-09 19:12:57 +01:00
QuerySet.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
rowset.ts (core) Fix some bugs with repositioning rows. 2022-06-07 16:55:45 -04:00
rowuid.js (core) move client code to core 2020-10-02 13:24:21 -04:00
RuleOwner.ts (core) Implementing row conditional formatting 2022-08-09 20:11:36 +02:00
SearchModel.ts (core) Don't show hidden tables in table data options when adding widgets 2022-07-21 16:28:28 +02:00
SectionFilter.ts (core) Speed up and upgrade build. 2022-06-27 16:10:10 -04:00
Styles.ts (core) Adding font options to the style picker 2022-04-07 20:35:03 +02:00
TableData.ts (core) Use MetaTableData more 2021-12-07 17:09:58 +02:00
TableModel.js (core) Change how formula columns can be converted to data. 2021-03-05 12:42:57 -05:00
TreeModel.ts (core) Fix some bugs with repositioning rows. 2022-06-07 16:55:45 -04:00
UserManagerModel.ts (core) Add product for new personal plan 2022-07-26 11:33:23 -07:00
UserPrefs.ts (core) Polishing upgrade plan UI 2022-06-29 18:28:37 +02:00
WorkspaceInfo.ts (core) move client code to core 2020-10-02 13:24:21 -04:00