mirror of
https://github.com/hanzoai/team.git
synced 2026-09-30 01:57:35 +00:00
* [MM-64357] Fix ABAC simple-expression detection for apostrophe values The isSimpleCondition/isMultiselectOrGroup helpers used a quoted-string regex fragment (['"][^'"]*['"]) that rejected any quote character inside a value. A valid value like "Matt's Department" therefore failed the simple-expression check, disabling "Switch to Simple Mode" and trapping the policy editor in advanced mode. Replace the fragment with a proper CEL string-literal pattern that allows apostrophes inside double-quoted strings (and double quotes inside single-quoted strings), plus escaped quotes, matching what the CEL parser accepts and what celStringLiteral emits. Co-authored-by: mattermost-code <[email protected]> * [MM-64357] Add tests for quote characters in ABAC simple-expression detection Cover the apostrophe regression: values like "Matt's Department" must be classified as simple expressions across equality, string operators, in-lists, scalar-in, native email, single-quoted values, and multiselect OR groups. A round-trip test ties rowToCEL/celStringLiteral output to isSimpleExpression, and a negative case guards against accepting unterminated quoted values. Co-authored-by: mattermost-code <[email protected]> * [MM-64357] Strengthen quote-handling tests per review Add bug-catching round-trip for "has any of" (multiselect OR group), plus ranked-operator, session-namespace, and unescaped-embedded-quote cases. Clarify that the in-list matcher and single-quoted case are intentionally detection-only, and reword the celStringLiteral characterization comment. Co-authored-by: mattermost-code <[email protected]> * [MM-64357] Tighten CEL list pattern in simple-expression detection Co-authored-by: mattermost-code <[email protected]> * Add editor-surface and e2e tests for apostrophe values (MM-64357) Address review feedback requesting the coverage gaps Linda/Matty flagged: - Membership Policy surface (policy_details): rendered mode-toggle state (Switch to Simple Mode enabled) for apostrophe equality and multiselect OR-group values, plus a complex-expression negative control. - Permission Policy surface (permission_policy_details): apostrophe equality/in-list/OR-group open in Simple mode and keep the toggle enabled, covering the shared isSimpleExpression path on both surfaces. - Playwright e2e: apostrophe 'is' value round-trips through save/reopen and the Switch to Simple Mode toggle stays enabled (button state + persistence). * Fix apostrophe values e2e test cleanup to be independent of list rendering - Add fallback policy lookup by name in finally block - Ensures cleanup happens even when navigation/assertions fail after save - Addresses CodeRabbit feedback on test stability Co-authored-by: Maria A Nunez <[email protected]> --------- Co-authored-by: mattermost-code <[email protected]> Co-authored-by: Maria A Nunez <[email protected]> Co-authored-by: Hanzo Dev <[email protected]>