Admin User Level Preferences - hmislk/hmis GitHub Wiki
User-Level Preferences
Overview
User-level preferences are the most personal layer of configuration in HMIS. They apply to a single user account and override all other configuration scopes for that user. Currently, the main user-level preference is the Autodisplay Menu setting. Administrators can manage preferences for any user; users can manage their own preferences if they have the ChangePreference privilege.
When to Use
- A user wants the navigation menu to open automatically on every page
- You are configuring a new user's environment before they start work
- You need to reset a user's preference to the default
Navigating to User Preferences
As an administrator (for any user):
- Click Administration → Manage Users
- Select the user in the list
- Click Manage Preferences in the right action panel
- The User Preferences form opens
As a user (for yourself):
- If you have the ChangePreference privilege, navigate to your personal preferences area
See also: User Preferences and Themes for the full walkthrough of the preferences form.
Available User Preferences
| Preference | Description | Default |
|---|---|---|
| Autodisplay Menu | When on, the navigation menu expands automatically when any page loads. When off, the user must click the menu icon manually. | Off |
User Options (ConfigOption Scope)
In addition to the preferences form, users can have ConfigOption records at the USER scope. These are managed via the User Options page in the institution administration index.
Navigate to Administration → Manage Institutions → User Options to manage user-scoped ConfigOption records. This allows the same key-value configuration pattern as institution and department options, but applied per user.
Scope Priority Reminder
User-level settings override everything:
- USER scope (this level) — highest priority
- Department scope
- Institution scope
- Application scope — lowest priority
Technical Notes (Admin/Developer)
The Autodisplay Menu preference is stored on the UserPreference entity linked to the WebUser. User-scoped ConfigOption records have optionScope = OptionScope.USER and a non-null webUser field. The preferences form saves via sessionController.saveUserPreferences(). The admin_mange_user_options.xhtml page provides the ConfigOption management interface for the USER scope.