Role-Based Access Control (RBAC) and Model ACLs
Designing security group hierarchies, configuring ir.model.access.csv files, and granting granular Create, Read, Write, and Unlink (CRUD) permissions.
1. Overview & Business Value#
This comprehensive operational guide details the architecture, business workflows, configuration parameters, and execution steps for Role-Based Access Control (RBAC) and Model ACLs within SmartERP.
Role-Based Access Control (RBAC) governs model-level access permissions via Access Control Lists (ir.model.access.csv).
CRUD Permission Bitmask#
Every model access rule defines four discrete binary rights:
perm_read: Ability to query and view records.perm_write: Ability to modify existing records.perm_create: Ability to insert new records.perm_unlink: Ability to delete records permanently from database.
{screenshot:rbac-security-groups-and-acls-overview-dashboard}
2. Prerequisites & Security Access Groups#
- Required Modules:
base, web, smarterp_security - Security Groups:
Enterprise Security Officer(Technical ID:base.group_user)Security Administrator(Technical ID:base.group_system)
- Master Data Dependencies: Established security group hierarchy, defined multi-company boundaries, and configured access control lists (
ir.model.access.csv).
3. Step-by-Step Configuration & Execution#
Step 1: Navigating to the Module Interface#
- Log into your SmartERP instance at
https://smarterp.et/odoo. - Open the main App Switcher (grid icon in the top-left corner).
- Select the Settings app icon.
- From the top navigation bar, open Users & Companies → Users / Groups / Record Rules.
{screenshot:rbac-security-groups-and-acls-app-switcher-navigation}
Step 2: Creating and Parameterizing Records#
- Click the New button in the top-left control panel.
- Complete the mandatory fields in the security form:
- Rule Name (Mandatory): Descriptive identifier for security rule.
- Target Model (Mandatory): Underlying data model subject to access control.
- Domain Filter (Mandatory): Logical Python domain expression enforcing row-level restriction.
- Configure optional parameters: group assignment, global rule flags, and active state.
{screenshot:rbac-security-groups-and-acls-record-creation-form}
Step 3: Validating and Processing Transactions#
- Execution & Validation: Switch user context to test persona and verify query behavior.
- Log Verification: Confirm that restricted records are omitted from list and search views.
{screenshot:rbac-security-groups-and-acls-transaction-processing-state}
4. Advanced Configuration Points#
- Automated Actions & Scheduled Tasks (Crons):
Security: Audit log archival(base.ir_cron_audit_archive)Security: Expire dormant sessions(base.ir_cron_session_expire)
- Custom Print Templates & Reports:
- Role-Based Access Control (RBAC) Security Matrix
- System Security & User Activity Audit Dossier
- Multi-Company Rules: Record-level security isolation under Company 1 (
Ashewa Technology Solutions S.C.).
5. Comprehensive Troubleshooting Matrix#
| Error Symptom / Exception | Probable Root Cause | Corrective Action / Resolution |
|---|---|---|
Access Rights Error: Operation not allowed | User lacks required CRUD permission in ir.model.access.csv. | Assign user to the corresponding operational security group under Settings → Users. |
Record Rule Access Denied: Document outside company boundary | Target record belongs to a company excluded by user profile. | Add company to Allowed Companies or switch active company selector. |
Two-Factor Authentication Lockout | User lost mobile 2FA device or time drift occurred. | Reset user TOTP secret under User Preferences using administrator credentials. |