Non-Admin User Manager â Secure Delegated User Administration
"Empower your team leads and HR managers to create and manage users â without ever exposing Administrator or system-level access. This module adds a dedicated 'Users Settings' menu, hides system accounts (OdooBot & Administrator), blocks privilege escalation attempts, and enforces ORM-level record rules â all with zero configuration."
FEATURES
-
Dedicated "Users Settings" Menu: A standalone top-level menu called "Users Settings" is added to the main navigation bar. It is visible only to members of the "User Manager (Limited)" group and system administrators â keeping it completely hidden from regular users.
-
System Accounts Hidden (OdooBot & Administrator): The user list automatically filters out system accounts (User ID 1 and 2). Limited managers can only see and manage users with ID > 2 â OdooBot and the main Administrator account are completely invisible.
-
Application-Level Access Assignment: Limited managers can create new users and assign application-level access rights (Sales, Purchase, Inventory, etc.) using the standard Odoo user form â no custom UI needed.
-
Administration Category Hidden: The "Administration" category is automatically hidden from the access rights widget for non-technical users. Limited managers cannot see or accidentally assign Administration/Settings roles through the structured groups interface.
-
Privilege Escalation Block: Even if someone attempts to assign Administration or Settings groups via developer mode, API calls, or direct ORM commands, the module intercepts all three Odoo group assignment formats (groups_id, sel_groups_*, in_group_*) and raises a UserError â completely blocking the attempt.
-
ORM-Level Record Rule: A server-side record rule enforces the ID > 2 filter at the database level. Even if the domain filter is bypassed through an API or RPC call, the record rule ensures system accounts remain inaccessible.
-
Delete Protection: Limited managers can create and edit users but cannot delete them (perm_unlink = False). This prevents accidental or intentional deletion of user accounts.
-
Clean List View with Smart Columns: A custom list view displays user records with useful columns â ID, Full Name, Email/Login, Active toggle, Portal status, Company, and optional Language/Timezone fields. Inactive users are visually muted for easy identification.
HOW IT WORKS
Step 1: Install the module and assign the "User Manager (Limited)" group to the desired team leads, HR managers, or department heads via the standard Odoo user form.
Step 2: Limited managers will see a new "Users Settings" menu in their navigation bar. Clicking it opens the Users list â showing only non-system users (ID > 2).
Step 3: They can create new users, set login credentials, and assign application-level access rights (Sales User, Inventory Manager, etc.) â all through the familiar Odoo user form.
Step 4: The module silently enforces security â the Administration category is hidden, system groups cannot be assigned, system accounts are invisible, and user deletion is blocked. No action required from the administrator.
Go To: Main Menu â Users Settings
Only non-system users (ID > 2) are visible â OdooBot and Administrator are completely hidden from limited managers.
Create new users and assign application-level access rights (Sales, Inventory, Purchase) using the standard Odoo user form.
Searching for "Administrator" or "OdooBot" returns zero results â ORM-level record rules ensure system accounts are invisible even via search or API.
Limited managers cannot delete users â only create and edit. Deletion is blocked at the access control level for maximum safety.
USE CASES
-
Multi-Branch Organizations: Allow branch managers to create and manage their own team's Odoo accounts without giving them access to the main Administrator account or system settings.
-
HR Departments: Enable HR teams to onboard new employees into Odoo â setting up their login, assigning Sales/Inventory/Purchase access â without needing to involve the IT administrator.
-
Outsourced IT Support: Give your external IT support team the ability to manage user accounts while ensuring they can never escalate their own privileges or access system-level settings.
-
Compliance & Audit Requirements: Maintain strict separation of duties â the person managing user accounts should not have the same level of access as the system administrator.
-
Small Teams with Shared Admin Responsibilities: In smaller teams where multiple people need to manage users, this module prevents any of them from accidentally or intentionally changing critical system configurations.
BENEFITS
-
â Zero Configuration: Install and start using immediately â just assign the "User Manager (Limited)" group to the desired users. No extra setup needed.
-
â Multi-Layer Security: Protection works at three levels â UI (hidden category), ORM (record rules), and Python (write/create guards) â making privilege escalation virtually impossible.
-
â Familiar User Interface: Reuses the standard Odoo user form (base.view_users_form) â no learning curve for your team. Everything looks and works like native Odoo.
-
â Lightweight & Dependency-Free: Depends only on 'base' and 'web' â no third-party modules required. Works on any standard Odoo 19.0 installation.
-
â Safe Delegation: Delegate user management to team leads without worry â they can manage day-to-day user operations while system integrity remains untouched.
-
â Comprehensive Protection: All three Odoo group assignment methods (groups_id, sel_groups_*, in_group_*) are intercepted â no backdoor remains open.
CONFIGURATION
Step 1: Install the module from the Apps menu.
Step 2: Go to Settings â Users & Companies â Users.
Step 3: Open the user you want to designate as a limited user manager.
Step 4: In the "Other" section or via Technical groups, assign the "User Manager (Limited)" group to this user.
Step 5: Done! The user will now see the "Users Settings" menu and can start managing users safely.
FREQUENTLY ASKED QUESTIONS
Q: Which users are hidden from limited managers?
A: Users with ID 1 (OdooBot) and ID 2 (Administrator) are hidden. These are the default system
accounts created during Odoo installation. All other users (ID > 2) are fully visible and manageable.
Q: Can a limited manager assign the Administrator role to themselves or others?
A: No. The module blocks assignment of both 'base.group_system' (Technical/Settings) and
'base.group_erp_manager' (Administration) groups. Any attempt â via UI, developer mode, or API â
will result in a clear error message.
Q: Can limited managers delete user accounts?
A: No. The access control rules explicitly set perm_unlink to False. Limited managers can only
create and edit users â deletion requires system administrator access.
Q: Does this module modify the standard Odoo user form?
A: No. The module reuses the standard Odoo user form (base.view_users_form) as-is. It only adds
a custom list view and hides the Administration category from the structured groups widget.
Q: Will the "Users Settings" menu appear for all users?
A: No. The menu is visible only to users who belong to either the "User Manager (Limited)" group
or the system administrator group (base.group_system). Regular users will not see it.
Q: What Odoo modules does this depend on?
A: Only 'base' and 'web' â both are core Odoo modules available in every installation. No
third-party or enterprise dependencies.
Q: Does developer mode bypass the security restrictions?
A: No. Even with developer mode enabled, the Python-level guards in write() and create() methods
will block any attempt to assign Administration or Settings groups. The protection is enforced
at the server side, not just the UI.
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Lines of code | 345 |
| Technical Name |
sf_non_admin_user_manager |
| License | LGPL-3 |
| Website | https://squadfocus.com |
Please log in to comment on this module