Heratio Help Center article. Category: Administration / Users.
User Management
User Management is where administrators create and maintain the people who can sign in to Heratio: their account details, contact information, group memberships, translation languages, API keys and per-user plugin visibility. It also handles self-service tasks such as viewing a profile, changing a password and reviewing the clipboard, and it processes the queue of public registration requests. Administrators reach the user list at Admin -> Users (/admin/users); signed-in users reach their own profile at /user/profile. The feature is provided by the ahg-user-manage package.
Overview
Each Heratio user is modelled as an actor of class QubitUser, so a user record carries both account fields (username, email, password, active flag) and actor fields (display name, contact information). Users are organised into ACL groups, which determine what they can do; the User Management pages let you assign those groups but the permissions themselves are defined in the ACL area.
The pages divide into three audiences:
| Audience | Pages | Examples |
|---|---|---|
| Administrators | User browse, add, edit, delete, plugin grants, registration queue | /admin/users, /user/add, /user/{slug}/edit |
| Signed-in users | Profile, password change, clipboard, plugin preferences | /user/profile, /user/passwordReset, /user/clipboard |
| Public | Registration and email verification | /user/register, /user/verify/{token} |
Key features
- User browse. A paginated, searchable list of users with sorting by name, date modified or email, and an active / inactive / all status filter. Each row shows the user's display name, username, email, status and group memberships.
- Create and edit users. A full form covering username, email, password, display name, full contact details, group assignments, translation languages, preferred locale, and the active flag.
- Account deletion. A confirm-then-delete flow that removes the user along with their group memberships, ACL permissions, API keys and underlying records.
- Group assignment. Assign any application group (groups above the system range) on the edit form. Every user is always a member of the Authenticated group.
- Translation languages. Grant a user permission to translate content into specific locales, recorded as a translate permission.
- Preferred locale. Optionally pin a user's interface language; left blank, the interface falls back to the URL, cookie or browser preference.
- API keys. Generate or delete a user's REST API key and OAI-PMH key from the edit form.
- Per-user plugin grants. Administrators can allow or deny individual plugins for a specific user, overriding the global plugin configuration.
- Per-user plugin preferences. Administrators and editors can hide globally enabled plugins from their own navigation to reduce clutter.
- Self-service profile and password. Users can view their profile, edit it, and change their own password after confirming the current one.
- Registration queue. Public registration requests collect in a queue that administrators approve (which creates the account) or reject, with optional admin notes and an assigned group.
How to use
Browse users
- Go to Admin -> Users (
/admin/users). The list opens showing active users. - Use the status control to switch between Active, Inactive and All users.
- Use the search box to filter by name, username or email, and the sort control to order by Name, Date modified or Email.
- Click a user to open their detail page (
/user/{slug}), which shows their groups, any API keys, and their security clearance when the clearance feature is installed.
Add a user
- From the user list, choose Add (
/user/add). - Complete the form:
- Username and email are required and must be unique.
- Password is required (minimum six characters); a confirmation field must match if filled.
- Display name (authorized form of name) is the human-readable name shown throughout the interface.
- Contact information - telephone, fax, street address, city, region, postal code, country code, website and a free-text note.
- Groups - tick the application groups this user should belong to.
- Translation languages - choose the locales the user may translate into.
- Preferred locale - optionally pin the interface language; leave blank for no preference.
- Active - leave ticked for an enabled account.
- Save. The new user is created and you are taken to their detail page.
Edit a user
- Open a user and choose Edit (
/user/{slug}/edit). - Change any of the fields above. Leave the password blank to keep the existing password; enter a new one to change it.
- Use the API key controls to generate or delete the user's REST API key and OAI-PMH key (see below).
- Save. Group memberships are re-synchronised to your selection while the Authenticated group is always retained.
Manage a user's API keys
- On the edit form, find the REST API key and OAI-PMH key controls.
- Choose generate to create a new key (this replaces any existing key of that type) or delete to remove the key entirely.
- Save the form. Keys are stored against the user and shown on their detail page.
Delete a user
- Open the user and choose Delete (
/user/{slug}/delete). - Confirm on the confirmation page. Deleting a user removes their group memberships, ACL permissions, API keys, display name, contact records and underlying account in one transaction.
Manage per-user plugin grants (administrators)
- Open a user's plugin grants page (
/user/{slug}/plugins). - For each plugin, choose Inherit, Allow or Deny:
- Inherit leaves the global plugin configuration in effect (no per-user override).
- Allow turns the plugin on for this user regardless of the global setting.
- Deny turns the plugin off for this user.
- Save. The grants for this user are replaced with your selection.
Manage your own plugin preferences
- Go to Profile -> Plugins (
/user/profile/plugins). This page is available to administrators and editors. - Tick the globally enabled plugins you want to hide from your own navigation.
- Save. Your preferences are stored separately from the admin grants and only affect your own view.
Self-service: profile, password and clipboard
- Profile (
/user/profile) shows your own account using the same detail view as the admin user page. - Edit profile (
/user/profile/edit) takes you to your edit form. - Change password (
/user/passwordReset) asks for your current password and a new password (with confirmation) before updating it. - Clipboard (
/user/clipboard) lists the items you have saved to your clipboard.
Process registration requests
- Go to the registration queue (
/user/registration/pending). The page lists incoming public registration requests and can be filtered by status (pending, verified, approved, rejected or expired). - To approve a request, optionally choose a group to assign and add admin notes, then approve. This creates a full user account from the request details (including the verified email and chosen username) and marks the request approved.
- To reject a request, add admin notes and reject. The request is marked rejected and no account is created.
Public visitors begin the process at the registration form (/user/register) and confirm their email through the verification link (/user/verify/{token}).
Configuration
The package has no dedicated config file; behaviour is driven by data and shared settings:
- User accounts are stored across the class-table-inheritance chain
object->actor->user, with the display name inactor_i18nand contact details incontact_information/contact_information_i18n. - Group membership is stored in
acl_user_group. Every user is always assigned the Authenticated group (id 99); only groups above the system range (id greater than 99) are selectable on the form. - Translation languages are stored as a translate permission in
acl_permissionfor the user. - Preferred locale is stored on the
userrecord when the schema includes that column; on older installs the field is simply not shown and the interface falls back to the URL, cookie or browser preference. - API keys are stored in the
property/property_i18ntables under the namesRestApiKeyandOaiApiKey. - Plugin grants are stored in
user_plugin_grant, and plugin preferences inuser_plugin_preference; both reference plugin names fromatom_plugin. - Available languages for the form come from the
i18n_languagessetting, falling back to the translation files in the application'slangdirectory. - Page size for the browse list follows the shared hits-per-page setting.
- Registration requests are stored in a registration request table (
ahg_registration_request), the only table this package installs.
Administrative pages are protected by the admin middleware, and write actions additionally require the matching ACL action (create, update or delete). Self-service pages require an authenticated session; the registration form and email verification are public.
References
- Source: packages/ahg-user-manage/
- GH Issue: https://github.com/ArchiveHeritageGroup/heratio/issues/TBD