Skip to content

Rework content scopes management in the user permissions panel - #6116

Open
fraxachun wants to merge 1 commit into
claude/user-permissions-content-scope-dimensionsfrom
claude/user-permissions-admin-panel
Open

Rework content scopes management in the user permissions panel#6116
fraxachun wants to merge 1 commit into
claude/user-permissions-content-scope-dimensionsfrom
claude/user-permissions-admin-panel

Conversation

@fraxachun

@fraxachun fraxachun commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Problem

The user permissions panel derived its content scope columns from the data of each individual user, so the set of columns was inconsistent between users and dimensions without a value (e.g. a wildcard dimension or an optional dimension not part of availableContentScopes) were not shown at all. Assigning content scopes did not support wildcard/free-value dimensions, and the assigned-scopes and permission-specific-scopes UIs were separate implementations.

Solution

Render a consistent set of content scope columns for every user based on the content scope dimensions declared in the API (userPermissionsAvailableContentScopeDimensions). A dimension whose value is the "*" wildcard is shown as "All".

  • Content scopes are assigned through an "Add scope" dialog that builds a scope from one dropdown per enumerable dimension, cascading so that only existing combinations can be selected. Dimensions that are not part of availableContentScopes are entered as a free text value (* grants all values).
  • The assigned content scopes and the permission-specific content scopes (override dialog) share the same paginated grid and add dialog, and show manually assigned scopes first.
  • Removing a content scope asks for confirmation, consistent with removing a permission, and the assignment type is presented consistently across the permissions and content scopes grids.
  • The userPermissionsContentScopes query now returns the user's content scopes as-is instead of intersecting them with availableContentScopes, so wildcard and other free content scopes are shown in the assigned-scopes grid.

Screenshots/screencasts

To be added.

Stacked pull request

This is layer 4 of 4 of a stacked pull request. Review and merge bottom-up (each layer targets the one above it):

  1. Support wildcard values for content scope dimensions → main (Support wildcard values for content scope dimensions #6114)
  2. Summarize a user's content scopes per dimension in the users list → Support wildcard values for content scope dimensions #6114 (Remove the Permissions and Scopes columns from the user permissions users list #6135)
  3. Allow declaring content scope dimensions at runtime → Remove the Permissions and Scopes columns from the user permissions users list #6135 (Allow declaring content scope dimensions at runtime #6115)
  4. Rework content scopes management in the user permissions panel (this PR) → Allow declaring content scope dimensions at runtime #6115 (Rework content scopes management in the user permissions panel #6116)

Replaces #5985, which combined all layers.

🤖 Generated with Claude Code

@fraxachun
fraxachun marked this pull request as ready for review August 5, 2026 08:00
@fraxachun
fraxachun force-pushed the claude/user-permissions-admin-panel branch from 88643cc to 6dd4cb5 Compare August 5, 2026 08:09
@fraxachun
fraxachun force-pushed the claude/user-permissions-admin-panel branch from 6dd4cb5 to 81f65d8 Compare August 6, 2026 07:12
@fraxachun
fraxachun force-pushed the claude/user-permissions-admin-panel branch from 81f65d8 to 59bec85 Compare August 6, 2026 08:57
@fraxachun
fraxachun force-pushed the claude/user-permissions-admin-panel branch from 59bec85 to 888a80a Compare August 6, 2026 09:17
@fraxachun
fraxachun force-pushed the claude/user-permissions-admin-panel branch from 888a80a to 1606541 Compare August 6, 2026 11:08
@fraxachun
fraxachun force-pushed the claude/user-permissions-admin-panel branch from 1606541 to b6ced24 Compare August 6, 2026 13:02
@fraxachun
fraxachun force-pushed the claude/user-permissions-admin-panel branch from b6ced24 to 807a567 Compare August 6, 2026 13:16
@fraxachun
fraxachun force-pushed the claude/user-permissions-admin-panel branch from 807a567 to f566dbb Compare August 6, 2026 13:46
@fraxachun
fraxachun force-pushed the claude/user-permissions-admin-panel branch from f566dbb to d2f7cae Compare August 7, 2026 11:31
@fraxachun
fraxachun force-pushed the claude/user-permissions-admin-panel branch from d2f7cae to a718720 Compare August 7, 2026 11:38
@fraxachun
fraxachun force-pushed the claude/user-permissions-admin-panel branch from a5e3046 to d56afe7 Compare August 11, 2026 06:45
@fraxachun
fraxachun force-pushed the claude/user-permissions-admin-panel branch from d56afe7 to 7d6d16e Compare August 11, 2026 06:58
@fraxachun
fraxachun force-pushed the claude/user-permissions-admin-panel branch from 7d6d16e to 1a0ac02 Compare August 11, 2026 08:21
@fraxachun
fraxachun force-pushed the claude/user-permissions-admin-panel branch from 1a0ac02 to 9baa792 Compare August 11, 2026 12:26
@fraxachun
fraxachun force-pushed the claude/user-permissions-admin-panel branch 2 times, most recently from 2b4a3ce to b67bef8 Compare August 13, 2026 08:23
@fraxachun
fraxachun force-pushed the claude/user-permissions-admin-panel branch from b67bef8 to f21fb49 Compare August 13, 2026 09:27
@fraxachun
fraxachun force-pushed the claude/user-permissions-admin-panel branch from f21fb49 to d306634 Compare August 13, 2026 10:23
@fraxachun
fraxachun force-pushed the claude/user-permissions-admin-panel branch from d306634 to 2e3bf1d Compare August 13, 2026 14:25
@fraxachun
fraxachun force-pushed the claude/user-permissions-admin-panel branch 2 times, most recently from a918837 to 4d4fe0f Compare August 14, 2026 09:27
@fraxachun
fraxachun force-pushed the claude/user-permissions-admin-panel branch from 4d4fe0f to 222d90f Compare August 14, 2026 09:29
Render a consistent set of content scope columns for every user based on the
content scope dimensions declared in the API, showing a wildcard dimension as
"All". Assign content scopes through an add dialog with cascading dropdowns
per enumerable dimension and free text values for non-enumerable dimensions.
Use the same paginated grid and add dialog for the assigned and the
permission-specific content scopes, show manually assigned scopes first, and
confirm scope removal. Show the distinct permission count and the accessible
content scope count in the users list.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JVwZJtKmfrQq2VZmPAB76j
@fraxachun
fraxachun force-pushed the claude/user-permissions-admin-panel branch from 222d90f to edb3bf9 Compare August 14, 2026 09:33
@fraxachun
fraxachun marked this pull request as ready for review August 14, 2026 09:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants