Improve local password dialogs and add configurable online users footer panel#5157
Open
guerricv wants to merge 15 commits intonilsteampassnet:masterfrom
Conversation
Added a new endpoint to retrieve currently connected users for the admin dashboard footer panel, excluding specific system accounts.
Added functionality to display online users and a button to open the online users drawer in the sidebar footer.
Add language strings for online user settings
Add CSS styles for online user avatars and fix missing newline.
Contributor
Author
|
Small follow-up update on top of the initial implementation:
This keeps the popup cleaner and more user-friendly while staying consistent with the existing profile/avatar behavior already used elsewhere in TeamPass. |
nilsteampassnet
added a commit
that referenced
this pull request
Mar 30, 2026
Remove unused TP_ONLINE_USERS_I18N constant from pages/admin.js.php (i18n is consumed internally by the TeamPassOnlineUsers module in load.js.php). Remove dead get_online_users_list case from sources/admin.queries.php: - the footer drawer fetches data via get_online_users_status in main.queries.php; - this endpoint was never called from JS. Add show_online_users_list setting to upgrade_run_3.1.7.php and run.step5.php (install) so the key exists in teampass_misc on existing installations (default: disabled). Fix HTML injection in generated-password modals: instead of interpolating the password directly into the value="" attribute of the HTML string (which breaks if the password contains quotes), build the modal with an empty value and set it via jQuery .val() immediately after the call to showModalDialogBox(). Applied to all three affected dialogs: - admin reset flow (load.js.php) - new user creation flow (users.js.php) - local user creation flow (users.js.php) Clean up orphaned comment separator in pages/admin.js.php. Updated language files with new strings.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
This PR groups two UX-oriented improvements around user management and session visibility:
Why
The first change makes generated passwords easier to handle and fixes a few inconsistencies in the administrator password reset flow.
The second change improves the footer online-users indicator by aligning it with the dashboard logic and by offering a lightweight connected-users panel. Because exposing the list of connected users can be considered sensitive information, this visibility is now controlled by an administrator setting.
Main changes
1. Local user password dialogs
2. Footer online users panel
3. New administrator setting for online users visibility
Security considerations
Showing the full list of connected users to every authenticated user may not be desirable in all environments. This PR therefore introduces an explicit administrator-controlled setting so each instance can decide whether that information should be exposed.
Implementation details
includes/core/load.js.phpsources/users.js.phpindex.phppages/admin.js.phpsources/main.queries.phppages/options.phpsources/admin.queries.phpincludes/language/english.phpandincludes/language/french.phpFiles changed
includes/core/load.js.phpsources/users.js.phpindex.phppages/admin.js.phpsources/main.queries.phppages/options.phpsources/admin.queries.phpincludes/language/english.phpincludes/language/french.phpTesting
Notes
This remains intentionally lightweight on the UI side: