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]

Reply via email to