df7f64a4bd [MM-64357] Fix ABAC policy editor unable to switch back to Simple Mode when a value contains an apostrophe (#37819)
* [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]>
2026-08-12 10:49:26 -04:00
2018-05-30 10:23:25 -04:00
2026-04-01 13:03:36 +00:00

Mattermost logo

Mattermost is an open core, self-hosted collaboration platform that offers chat, workflow automation, voice calling, screen sharing, and AI integration. This repo is the primary source for core development on the Mattermost platform; it's written in Go and React, runs as a single Linux binary, and relies on PostgreSQL. A new compiled version is released under an MIT license every month on the 16th.

Deploy Mattermost on-premises, or try it for free in the cloud.

mattermost user interface

Learn more about the following use cases with Mattermost:

Other useful resources:

Table of contents

Install Mattermost

Other install guides:

Native mobile and desktop apps

In addition to the web interface, you can also download Mattermost clients for Android, iOS, Windows PC, macOS, and Linux.

Get Mattermost on Google Play Get Mattermost on the App Store Get Mattermost on Windows PC Get Mattermost on Mac OSX Get Mattermost on Linux

Get security bulletins

Receive notifications of critical security updates. The sophistication of online attackers is perpetually increasing. If you're deploying Mattermost it's highly recommended you subscribe to the Mattermost Security Bulletin mailing list for updates on critical security releases.

Subscribe here

Get involved

Learn more

License

See the LICENSE file for license rights and limitations.

Get the latest news

Contributing

Small Image

Please see CONTRIBUTING.md. Join the Mattermost Contributors server to join community discussions about contributions, development, and more.

S
Description
Hanzo Team — the workspace served at hanzo.team
Readme
3.1 GiB
Languages
TypeScript 49.3%
Go 44.1%
SCSS 2.7%
HTML 2.2%
JavaScript 1.4%
Other 0.2%