Update User Profile and User Settings

Situation
Hi i would like to ask in Open EMR if there is way for the user to update there user profile? Like Facility Assign,First Name and Last Name and other info used for account creation. I know this can only be done if the user is under Administrator group. But on a regular user there is no option for them to update there user information.

And also how can we disable the User Settings in each user? We don’t want that user can change the Appearance of Open EMR in there profile to have a uniformity across all user.

Thanks,
Casper

:white_check_mark: 1. Allow Regular Users to Update Their Profile Info (e.g., Facility Assign, First/Last Name) in OpenEMR

By default, OpenEMR only allows Administrators to edit user details like Facility, Name, Username, etc. Regular users do not have access to the “Users” section in the Admin menu.

To allow regular users to edit their own profile, you can create a custom user profile update page, with limited editable fields like First Name, Last Name, Default Facility, etc. Here’s how to approach it:

:wrench: Solution: Create a “My Profile” Page

  1. Create a PHP file in /interface/user_profile/my_profile.php

  2. Add logic to load the current user’s details using:

  3. $userid = $_SESSION[‘authUserID’];

  4. Load and update fields from the users table:

  • fname (First Name)

  • lname (Last Name)

  • default_facility

  • Possibly phone/email if needed

  1. Restrict access only to the current user via session validation.

  2. Add a new menu item:

  • Go to Administration > Menus

  • Add a new item pointing to /interface/user_profile/my_profile.php

Would you like me to generate the full working code for my_profile.php and the menu config?

:no_entry_sign: 2. Disable User Settings (like Appearance Customization)

By default, users can go to:

Miscellaneous > User Settings

And change preferences like:

  • Theme/Appearance

  • Language

  • Layout Preferences

If you want to disable or hide the User Settings page completely, here are two approaches:

:lock: A. Remove the Menu Entry for Non-Admins

  1. Go to Administration > Menus

  2. Look under popup or patient menu for:

  • Label: User Settings

  • URL: interface/usergroup/user_settings.php

  1. Set the Access Control to only allow Administrator.

Or use a custom ACL check:

if (!acl_check(‘admin’, ‘super’)) {

// Don’t show or allow access

}

:soap: B. Modify user_settings.php to Deny Access

In /interface/usergroup/user_settings.php, wrap everything with:

if (!acl_check(‘admin’, ‘super’)) {

die(“Access denied: This page is disabled for your user group.”);

}

This blocks access entirely, even if someone types the URL manually.

If you face any difficulties. free to call us