gristlabs_grist-core/sandbox/grist
Dmitry S de35be6b0a (core) Checks that an ACL formula can be parsed, and prevent saving unparsable ACL rules.
Summary:
- Fix error-handling in bundleActions(), and wait for the full bundle to complete.
  (The omissions here were making it impossibly to react to errors from inside bundleActions())
- Catch problematic rules early enough to undo them, by trying out ruleCollection.update()
  on updated rules before the updates are applied.
- Added checkAclFormula() call to DocComm that checks parsing and compiling
  formula, and reports errors.
- In UI, prevent saving if any aclFormulas are invalid, or while waiting for the to get checked.

- Also fixed some lint errors

Test Plan: Added a test case of error reporting in ACL formulas.

Reviewers: paulfitz

Reviewed By: paulfitz

Differential Revision: https://phab.getgrist.com/D2689
2020-12-15 09:43:37 -05:00
..
functions (core) Improve suggestions for formula autocomplete 2020-09-12 00:21:29 -04:00
imports (core) move data engine code to core 2020-07-29 08:57:25 -04:00
acl_formula.py (core) Implement new representation of ACL rules. 2020-11-18 08:58:03 -05:00
acl.py (core) Remove the old attempt at ACLs implemented in Python. 2020-11-12 09:35:08 -05:00
action_obj.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00
action_summary.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00
actions.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
autocomplete_context.py (core) For autocomplete suggestions in formulas, add links to suggestions we have documentation for. 2020-09-15 15:24:41 -04:00
codebuilder.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
column.py (core) Fix issue with spurious changes produced by Calculate action. 2020-12-03 14:10:26 -05:00
csv_patch.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
depend.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
docactions.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00
docmodel.py (core) Remove the old attempt at ACLs implemented in Python. 2020-11-12 09:35:08 -05:00
engine.py (core) Remove the old attempt at ACLs implemented in Python. 2020-11-12 09:35:08 -05:00
gencode.py (core) Filter out gristHelper columns from the code listing in CodeEditor 2020-07-30 23:18:19 -04:00
gpath.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
grist.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
identifiers.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
import_actions.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
logger.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
lookup.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
main.py (core) Checks that an ACL formula can be parsed, and prevent saving unparsable ACL rules. 2020-12-15 09:43:37 -05:00
match_counter.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
migrations.py (core) Implement new representation of ACL rules. 2020-11-18 08:58:03 -05:00
moment_parse.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
moment.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
objtypes.py (core) Be more careful with avoiding actions which don't change encoded values 2020-12-10 09:09:45 -05:00
records.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00
relabeling.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
relation.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
repl.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
runtests.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00
sandbox.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
schema.py (core) Implement new representation of ACL rules. 2020-11-18 08:58:03 -05:00
summary.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
table_data_set.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
table.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00
test_acl_formula.py (core) Implement new representation of ACL rules. 2020-11-18 08:58:03 -05:00
test_actions.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_codebuilder.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_column_actions.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_completion.py (core) For autocomplete suggestions in formulas, add links to suggestions we have documentation for. 2020-09-15 15:24:41 -04:00
test_default_formulas.py (core) Fix lookups in default formulas 2020-09-10 18:06:06 -04:00
test_derived.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00
test_display_cols.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00
test_docmodel.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_engine.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00
test_find_col.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_formula_error.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00
test_formula_undo.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00
test_functions.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_gencode.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_gpath.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_import_actions.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00
test_import_transform.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00
test_logger.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_lookups.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00
test_match_counter.py (core) After a spate of spurious test failures, try to fix a few. 2020-09-14 16:17:12 -04:00
test_migrations.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_moment.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_record_func.py (core) Improve object serialization, to help get RECORD data to Custom Widgets. 2020-08-21 18:33:28 -04:00
test_reflist_rel.py (core) Fix a bug that occurs after remaing a table containing a RefList column. 2020-11-26 22:29:37 -05:00
test_relabeling.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_renames2.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00
test_renames.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00
test_side_effects.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00
test_summary2.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00
test_summary.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00
test_table_actions.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_table_data_set.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_textbuilder.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_treeview.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_twowaymap.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_types.py (core) Be more careful with avoiding actions which don't change encoded values 2020-12-10 09:09:45 -05:00
test_useractions.py (core) Remove the old attempt at ACLs implemented in Python. 2020-11-12 09:35:08 -05:00
testsamples.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
testscript.json (core) Be more careful with avoiding actions which don't change encoded values 2020-12-10 09:09:45 -05:00
testutil.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
textbuilder.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
treeview.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
twowaymap.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
tzdata.data (core) move data engine code to core 2020-07-29 08:57:25 -04:00
useractions.py (core) Implement new representation of ACL rules. 2020-11-18 08:58:03 -05:00
usercode.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
usertypes.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00