Overview
iDempiere implements a comprehensive role-based access control (RBAC) system. Users are assigned roles, and roles define access to data, windows, processes, and workflows.User Model
Users in iDempiere are represented by theAD_User table and MUser model class.
User Properties
- AD_User_ID: Unique user identifier
- Name: User’s full name
- Email: Email address (used for login and notifications)
- Password: Encrypted password (using SHA-512 with salt)
- C_BPartner_ID: Associated business partner
- IsActive: Whether user account is active
- IsLocked: Whether user is locked out
Creating Users
Via iDempiere UI
Create new user
Click New Record and fill in:
- Name
- Email (used as login)
- Password
- Business Partner (if applicable)
Programmatically
Users can be created using theMUser class:
User Authentication
Password Security
iDempiere uses secure password hashing:- Algorithm: SHA-512 with salt
- Salt: Randomly generated per user
- Migration: Automatic migration from older hash formats
Password Reset
Role Management
Roles define what users can access and what operations they can perform.Role Model
Roles are implemented in theMRole class, which is final to prevent security rule bypasses.
Role Properties
- AD_Role_ID: Unique role identifier
- Name: Role name
- UserLevel: System, Client, Organization, or Client+Organization
- IsAccessAllOrgs: Access to all organizations
- IsCanReport: Can run reports
- IsCanExport: Can export data
- IsPersonalLock: Personal data lock
- IsPersonalAccess: Personal access rules override
Creating Roles
Configure access
Set access to:
- Windows (Window Access tab)
- Processes (Process Access tab)
- Forms (Form Access tab)
- Workflows (Workflow Access tab)
- Tables (Table Access tab)
System Roles
iDempiere includes predefined system roles:- System Administrator (AD_Role_ID=0): Full system access
- System: Core system role
- GardenWorld Admin: Demo client administrator
Role-Based Access Control
Window Access
Control which windows users can access:Table Access
Define read/write access to specific tables:Data Access
Roles control access to data based on:- Client: Multi-tenant separation
- Organization: Organizational hierarchy
- Record-level: Specific record access
User-Role Assignment
Assigning Roles to Users
Multiple Roles
Users can have multiple roles:- Select role at login
- Switch roles during session
- Different default settings per role
Access Restrictions
Document Access
Control access to documents based on document type and status:- Doc Action Access: Which document actions users can perform
- Document Type Access: Which document types are available
Organization Access
Restrict data access by organization:- Single Organization: Access to one organization only
- Organization Tree: Access to organization and children
- All Organizations: Access to all organizations in client
Time-Based Restrictions
Implement time-based access controls:- Login time restrictions
- Session timeout settings
- Password expiration
User Preferences
Users can customize their experience:System Preferences
- Language: Display language
- Date Format: Date and time formatting
- Theme: UI theme selection
- Auto-commit: Automatic commit mode
- Show Accounting: Show accounting tab
Stored in AD_UserPreference
Preferences are stored per user:Security Best Practices
Implement principle of least privilege - grant minimum necessary access
Use role-based access instead of user-specific permissions
Regularly review user accounts and disable inactive users
Enforce strong password policies
Audit user login and access patterns
Separate duties for financial and operational roles
User Deactivation
Business Partner Users
Users can be linked to business partners for:- Customer Portal: Customer self-service
- Vendor Portal: Supplier access
- Employee Access: Employee-specific functions
Creating BP Users
Session Management
Active Sessions
Monitor active user sessions:- View logged-in users
- See current session details
- Force logout if needed
Session Timeout
Configure session timeout in system configuration:- Idle timeout
- Absolute timeout
- Warning before timeout
User Audit Trail
iDempiere tracks all user actions:- Login/Logout: Authentication events
- Data Changes: Created, Updated, Deleted records
- Document Processing: Document status changes
- Access Attempts: Failed access attempts
Advanced Topics
Personal Access
Users can have personal access records that override role access:Role Inheritance
Roles can be structured hierarchically (via customization):- Base role defines common permissions
- Derived roles add specific permissions
Dynamic Role Assignment
Implement dynamic role assignment based on:- Time of day
- User location
- Data context
- Business rules
Troubleshooting
User Cannot Login
- Verify user is active
- Check if user is locked
- Confirm password is correct
- Verify user has at least one active role
- Check role has organization access
Access Denied Errors
- Verify role has window/process access
- Check organization access
- Review table access permissions
- Check record-level security rules
Performance Issues
- Review number of access records
- Optimize role SQL filters
- Check role cache settings
- Analyze access SQL generation
See Also
- System Configuration - Configure system settings
- Database Setup - Database user configuration
- Migration - User and role migration