[pull] master from mattermost:master - #957
Merged
Merged
Conversation
* fix ABAC editor null-safety and ResizeObserver noise in local/dev mode. Null users from plugin RPC and incomplete PropertyField names no longer crash the test results modal or CEL editor; ignore Chromium ResizeObserver loop messages. Co-authored-by: Cursor <cursoragent@cursor.com> * Enforce self-inclusion on plugin-owned ABAC policy saves. Non-system-admins must match the expression they save via SavePluginAccessControlPolicy; system admins retain the same carve-out as channel/team policy saves. Co-authored-by: Cursor <cursoragent@cursor.com> * Share ABAC write guards across channel and plugin save paths. Extract enforceAccessControlPolicyWriteGuards so plugin saves get value-holding validation when AttributeValueMasking is on (without store merge), keep non-sysadmin self-inclusion always on, and normalize empty plugin query users. Co-authored-by: Cursor <cursoragent@cursor.com> * Finish ABAC test extraction after write-guard share. Drop duplicated self-inclusion cases from the ownership suite, remove the weaker users-slice test subsumed by gob coverage, and align the team self-inclusion comment with always-on helpers. Co-authored-by: Cursor <cursoragent@cursor.com> * Stub QueryUsersForExpression in channel/team-admin ABAC save tests. Always-on self-inclusion in CreateOrUpdateAccessControlPolicy calls QueryUsersForExpression for non-sysadmins; existing API tests that save policies as channel or team admins panicked on the unstubbed mock. Co-authored-by: mattermost-code <matty-code@mattermost.com> * Remove duplicate team self-inclusion check on policy save. CreateOrUpdateAccessControlPolicy already runs always-on self-inclusion via enforceAccessControlPolicyWriteGuards; the extra ValidateTeamAdminSelfInclusion loop double-queried expressions. HTTP still uses the team-specific check in the api4 handler. Co-authored-by: mattermost-code <matty-code@mattermost.com> * Type CEL attribute names honestly and cover team self-inclusion through the shared write guard. Plugin proxies can omit attribute names, so the editor type now allows null/undefined instead of a string cast. The new team save test hits checkSelfInclusion with a real expression so QueryUsersForExpression is asserted once. Co-authored-by: Cursor <cursoragent@cursor.com> * Satisfy eslint lines-around-comment on CELUserAttribute. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: mattermost-code <matty-code@mattermost.com>
prep-deps wrote node_modules + the Cypress binary to a shared Actions cache keyed on the cypress lockfile, and the 40 workers read it back within the same run. The repo is pinned at the 10 GB Actions cache ceiling (100 entries, 9.99 GB), so LRU eviction runs continuously. Every distinct cypress lockfile a run happens to build costs a ~275 MB entry in that budget — four are live today, 1.10 GB total — and they evict entries other jobs depend on: the webapp node_modules cache (3.7 GB), the Playwright deps cache, and the E2E npm registry cache. Build the deps once in prep-deps and upload them as a run-scoped artifact instead. The handoff is unchanged in shape — one producer, N consumers, within a run — but it costs the shared cache nothing, and it drops the fail-on-cache-miss cliff the workers previously depended on. The artifact name is scoped by edition: e2e-tests-ci.yml invokes this template twice per workflow run (default and fips) and artifact names are run-scoped, so the two invocations would otherwise collide. prep-deps loses its cache-hit shortcut and now always installs, so it restores the master-warmed ~/.npm registry cache read-only to keep that install short, and its timeout goes 10 -> 15 minutes. Playwright still uses the cache handoff; it is a larger payload with a churnier key and follows separately.
* webapp: let Tag forward a ref WithTooltip anchors its popover by cloning its child with a ref. Tag is a function component, so the ref was dropped and React warned about it, leaving the marketplace label tooltips without a positioning reference. Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com> (cherry picked from commit 3a34196) * webapp: stop leaking component props onto DOM elements isReadonly was hardcoded to false, never read, and fell through a prop spread onto the channel header menu's <li>. SearchChannelSuggestion was connected with a null mapDispatchToProps, so react-redux injected dispatch, which the suggestion container then spread onto its <li>. Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com> (cherry picked from commit 959ba3b) * webapp: stop connect's injected dispatch reaching suggestion list items Suggestions are connected components that forward their rest props into SuggestionContainer, which spreads them onto its <li>. A connect() without a mapDispatchToProps injects dispatch, so React saw it as an invalid DOM attribute. Drop it in the container alongside item, which covers every suggestion rather than one call site. Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com> (cherry picked from commit 41d09df) * webapp: key the add-workspace menu on a remote cluster's full identity RemoteClusters is keyed on (RemoteId, Name), so the same remote_id can appear more than once in the dropdown and React reported duplicate keys. Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com> (cherry picked from commit a4025d5) * fixup! webapp: let Tag forward a ref --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )