IATI / ckanext-iati

CKAN extension for the IATI Registry
http://iatiregistry.org
9 stars 6 forks source link

Admin UI: Search & administer users #416

Open robredpath opened 10 months ago

robredpath commented 10 months ago

As a member of IATI Support, I want to find information about users with the information that I have available† so that I can quickly understand the Registry situation for the person I'm helping.

I note that the page https://iatiregistry.org/user offers some this functionality, but:

Acceptance criteria

A member of IATI Support can find the user search function within the UI

The user search function reliably allows search by the fields listed†

The search results include all fields that can be searched on, plus their access level, presented in a table that is sortable by any column. Sorting should be across the whole result set, not just the results visible on the page. Usernames should be displayed up to 80 characters before truncation.

Paging of search results should be retained, with the option of larger pages.

Bulk operations (such as suspension or deletion of accounts) should be available.

  1. Non-functional Criteria (Include availability, maintainability, performance, reliability, scalability, security, and usability criteria)

This information should only be available to logged-in Sysadmin users

The fields that the search includes should be documented on the search page

† Name of individual (e.g. "Rob Redpath"), email address, username, domain name of email address, date registered, date of last login, associated publisher, associated datasets

EDIT 2024-01-02: Update specification based on conversation below

siwhitehouse commented 9 months ago

Thanks @robredpath for raising this issue.

The current page has the name of the individual as the only element of the list and it is truncated in many instances. I'd like us to specify that the results should be in tabular format and that the individual's name can be up to 80 characters before the interface truncates it. The hyperlink to the user page should be retained.

Sorting should be across all the results, not just within a page.

robredpath commented 9 months ago

Thanks, @siwhitehouse - agreed on both counts.

What other aspects of the user's profile would you like to see included in the table?

robredpath commented 9 months ago

Elsewhere, I see a suggestion for "user names, emails, date registered, date of last login, associated publisher, associated datasets"

Also, a suggestion for administrators to have the ability to perform bulk operations on users, such as account deletion or suspension (if there is such a concept).

siwhitehouse commented 9 months ago

@robredpath I think the fields specified are sufficient. Bulk operations would be useful.

robredpath commented 9 months ago

I have updated the specification in the initial comment in line with our subsequent conversation

cormachallinanderilinx commented 9 months ago

@siwhitehouse @robredpath Currently we dont store have the last log in time. What I can do is add there was activity on the account? Will this suffice or else I will look into storing last log in.

Another is for datasets, do you want a list of links to each users dataset ot just a count? Im think if a user has 10-20 datasets it could get quite ugly. Especially when if you click the link to a users profile page you get a better overview of their datasets

See attached example incase im working on staging: https://staging.iatiregistry.org/user/?q=admin

Screenshot 2024-01-05 at 14 36 57
robredpath commented 9 months ago

Thanks, @cormachallinanderilinx . What counts as "activity" for this purpose?

Another is for datasets, do you want a list of links to each users dataset ot just a count?

I think that a count is an improvement over nothing at all; it at least helps someone to eyeball whether the users in their search results have published data. I'm imagining that in cases of duplicate accounts, for example, this would help disambiguate.

I can see that more detail would be hard to incorporate into the UI: @siwhitehouse do you think this would be a valuable thing to have?

cormachallinanderilinx commented 9 months ago

*note for self Table sort url should be: https://www.iatiregistry.org/publisher/?q=&page=2&sort=title+asc https://www.iatiregistry.org/publisher/?q=&page=3&sort=title+asc https://www.iatiregistry.org/publisher/?q=&page=10&sort=title+asc

https://www.iatiregistry.org/publisher/?q=&page=2&sort=title+desc https://www.iatiregistry.org/publisher/?q=&page=6&sort=title+desc https://www.iatiregistry.org/publisher/?q=&page=10&sort=title+desc

Email: https://staging.iatiregistry.org/user/?q=&order_by=email&page=1 username: https://staging.iatiregistry.org/user/?q=&order_by=name&page=6 Full/Display name: https://staging.iatiregistry.org/user/?q=&order_by=full_name&page=1 https://staging.iatiregistry.org/user/?q=&order_by=full_name&page=5 Num packages: https://staging.iatiregistry.org/user/?q=&order_by=number_created_packages&page=281

cormachallinanderilinx commented 9 months ago

Estimate: 6 days (a lot of the user search code needs changes)

siwhitehouse commented 8 months ago

I think a count of datasets is preferable to us trying to list them all.

@cormachallinanderilinx what does the Last Activity date represent, please?

cormachallinanderilinx commented 8 months ago

@siwhitehouse last activity is essentially anything you would see in a users activity stream Example: https://iatiregistry.org/user/activity/simonwhitehouse

cormachallinanderilinx commented 8 months ago

hide emails when not loggedin