Website GitHub Try Demo

Tab Access Control (RBAC)

OpenMES uses Role-Based Access Control (RBAC) to decide which parts of the application each user role can see and use. The Tab Access screen shows a permissions matrix where you grant or revoke access per role.

Tab Access Control matrix showing roles as columns and tabs as rows with checkboxes

How It Works

The Tab Access screen displays a permissions matrix where:

The Admin role always has full access to every tab. This cannot be changed – it ensures at least one role can always manage the system. For all other roles, administrators check or uncheck individual tabs to build the exact permission set each role needs.

Default Permissions

Out of the box, OpenMES ships with sensible defaults:

You can change these defaults at any time. Changes take effect on the user's next page load – no logout or session restart is required.

Server-Side Enforcement

Tab Access Control is not just UI hiding. When a user tries to access a restricted tab – even by typing the URL directly into the browser – the server rejects the request with a 403 Forbidden response. RBAC permissions are enforced at the API level, not just in the navigation menu. This means:

Principle of Least Privilege

Give each role access only to the tabs it truly needs. Operators do not need Settings, API Tokens, or HR data. Supervisors do not need system configuration. Limiting access lowers the risk of accidental changes and reduces damage if an account gets compromised.

Use Case – Custom Quality Manager Role

A pharmaceutical manufacturer creates a "Quality Manager" role with access to Products & Traceability, Reports & Analytics, Maintenance & QC, and the Dashboard – but not Work Orders, HR, or Settings. The quality team can review traceability records, run reports, and manage QC checklists. They cannot change production orders or system settings. This meets the auditor's requirement for separation of duties.