sfirke opened a new issue, #45592:
URL: https://github.com/apache/superset/issues/45592
### Bug description
(I found this issue by hand, then wrote it up with Claude AI. I edited and
am posting this by hand having read it all)
The "Users" picker in the Edit Role and Edit Group modals, and the Users
filter on the Roles, Groups and Action Log list pages, fail to bring back more
than the first page of results, regardless of what you type. Every search
returns the same first page of users in username order, so any user outside
that page cannot be found or selected.
This makes these input fields unusable on large deployments.
The picker's `fetchUserOptions`
(`superset-frontend/src/features/groups/utils.ts`) sends the search term as a
rison `filter` key to `/api/v1/security/users/`. That is a Flask-AppBuilder
list endpoint, which only understands a `filters` array of `{col, opr, value}`
entries, so the `filter` key is silently ignored and the request is unfiltered.
The `filter` key is the convention for `/related/` endpoints, which is probably
where the mismatch came from.
#### How to reproduce
1. Have more than one page (100) of users, so that some usernames sort after
the first 100 alphabetically.
2. Open Settings → List Roles, edit a role, and type the name or username of
a user from beyond the first page into the Users picker.
3. Repeat in Settings → List Groups, or in the Users filter on the Roles
list page.
#### Expected
The picker narrows to users matching the typed text, and the user can be
selected.
#### Actual
The list does not change. The same first page of users shows regardless of
input, and the user cannot be found. Scrolling can page through, but typing
never helps.
#### Suggested fix
Send the term as a `filters` entry that the users API understands. The users
API has no free-text search operator, so one needs to be registered on
`SupersetUserApi` that matches username, first name, last name, full name and
email, then the picker should display the email beneath the name so an email
match is visible.
### Screenshots/recordings
_No response_
### Superset version
master / latest-dev
### Python version
Not applicable
### Node version
Not applicable
### Browser
Not applicable
### Additional context
Affects any deployment with more users than one picker page. Smaller
deployments never hit it because every user fits on the first page and
AsyncSelect filters that page client-side.
Seems like this has existed since #33298, merged in May 2025. First released
in 6.0.0. Are people not using Roles and Groups on large instances? I guess
Groups aren't really functional yet. But this makes me question what I'm seeing
when testing 7.0.0rc2, I can't add people to a group if they're not in the
first page of results ..
### Checklist
- [ ] I have searched Superset docs and Slack and didn't find a solution to
my problem.
- [x] I have searched the GitHub issue tracker and didn't find a similar bug
report.
- [x] I have checked Superset's logs for errors and if I found a relevant
Python stacktrace, I included it here as text in the "additional context"
section.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]