Admin user page
Admin user page
- If some functionality is missing from backend - file an issue for endpoint and do mocks. Everything should look functional. You may add notifications for stuff that's not here yet backend wise.
- Working in one Page component would get out of hand quite soon. So I would recommend developing these components in separation.
UserTable
-
Should include all fields as per image. -
Click on user name should open UserProfile. -
User table should react on UserFilterList changes.
??? Should we perhaps add some useful action to table row directly? Like deactivate account?
Feature: multiple select
-
Allow selecting specific users. This should open UserProfile page. -
Allow selecting all users. -
Allow to act on selected users. -
Allow to act on all users. If backend doesn't provide ability to do so in one request, we can get users in batches according to filters, then process users one by one, perhaps doing multiple requests at once to speed things up. Changing state of multiple users is considered rare occasion so it is not really needed to be lightning fast. -
Action select should be implemented in accordance to https://git.pleroma.social/pleroma/pleroma-fe/merge_requests/595. -
Action select should show only fields that apply to selected filter. Like for external user we shouldn't be able to assign moderator.
UserFilterList
-
All fields as per image. -
Should operate as live search (not on submit). Use debounce to keep backend relaxed. -
Should write and read from url query. This allows to share url of search.
UserProfile
-
Should display user info. -
Should allow navigation to user reports. -
Should allow actions on specific user as per https://git.pleroma.social/pleroma/pleroma-fe/merge_requests/595.
Initial issue
Implement user management functionality
Users should be searchable and manageable in a nice table layout as well as filterable on various attributes (local/remote users, admin, moderator, based on settings applied to the users, etc)
Basic admin/moderator actions we need to implement can be found by looking at the matrix documented in this pull request where we are working on adding this functionality to the main UI too
Edited by Nastassia Danilova