Understanding Roles & Permissions
Control what users can see and do in Infodeck by assigning roles with specific permissions.
Quick Summary
Infodeck uses a role-based access control (RBAC) system. Assign users to roles, and roles define what permissions they have.
Before You Begin
- You need roles:read to view roles
- You need roles:create to create custom roles
- You need roles:update to modify roles
- Admin access to assign roles to users
How Permissions Work
👤 User → 🎭 Role → 📋 Policies → ✅ Permissions
| Component | Description | Example |
|---|---|---|
| User | Individual account | john@company.com |
| Role | Collection of policies | "Maintenance Manager" |
| Policy | Rule defining access | Allow work-orders:* |
| Permission | Specific action | work-orders:create |
System Roles
Infodeck includes system roles that come pre-configured:
| Role | Description | Typical Users |
|---|---|---|
| Administrator | Full system control: manage users, teams, billing, and all settings | IT admins, system owners |
| Manager | Operational management: create work orders, assets, locations, configure IoT | Supervisors, managers |
| Field Technician | Field operations: update assigned work orders, view assets, submit forms | Maintenance staff |
| Tenant/Requester | Basic access: submit work requests, view assigned locations, fill forms | General staff, tenants |
System roles are protected and cannot be deleted. They provide the foundation for access control in your organization. Custom teams can be created with custom roles on Basic plan and above.
App Role Permissions Summary
| Capability | Admin | Approver | Requester | Viewer |
|---|---|---|---|---|
| View work orders | ✅ | ✅ | ✅ | ✅ |
| Create work requests | ✅ | ✅ | ✅ | ❌ |
| Approve work orders | ✅ | ✅ | ❌ | ❌ |
| Create work orders | ✅ | ✅ | ❌ | ❌ |
| Manage users | ✅ | ❌ | ❌ | ❌ |
| Manage settings | ✅ | ❌ | ❌ | ❌ |
| View dashboards | ✅ | ✅ | ✅ | ✅ |
| Edit dashboards | ✅ | ✅ | ❌ | ❌ |
Creating Custom Roles
Step 1: Open Role Settings
- Go to Settings in the sidebar
- Click Roles
- Click Create Role
Step 2: Define Role Basics
| Field | Required | Description |
|---|---|---|
| Name | Yes | Role name (e.g., "Facility Manager") |
| Description | No | Purpose of this role |
Step 3: Add Policies
Policies define what the role can do:
{
"resources": ["work-orders"],
"actions": ["read", "create", "update"],
"effect": "Allow"
}
| Policy Field | Options | Description |
|---|---|---|
| Resources | work-orders, assets, locations, etc. | What to control |
| Actions | read, create, update, delete, * | What operations |
| Effect | Allow, Deny | Grant or restrict |
Step 4: Save Role
- Review policies
- Click Create or Save
- Role is available for assignment
Permission Categories
Work Orders
| Permission | Description |
|---|---|
work-orders:read | View work orders |
work-orders:create | Create new work orders |
work-orders:update | Edit work orders |
work-orders:delete | Delete work orders |
work-orders:approve | Approve/reject work orders |
work-orders:assign | Assign work orders to users/teams |
Assets
| Permission | Description |
|---|---|
assets:read | View assets |
assets:create | Register new assets |
assets:update | Edit asset information |
assets:delete | Remove assets |
Locations
| Permission | Description |
|---|---|
locations:read | View locations |
locations:create | Create new locations |
locations:update | Edit locations |
locations:delete | Remove locations |
Users & Teams
| Permission | Description |
|---|---|
users:read | View user list |
users:invite | Invite new users |
users:update | Edit user profiles |
users:delete | Deactivate users |
teams:create | Create teams |
teams:update | Edit teams |
teams:delete | Remove teams |
Dashboards
| Permission | Description |
|---|---|
decks:read | View dashboards |
decks:create | Create dashboards |
decks:update | Edit dashboards |
decks:delete | Remove dashboards |
IoT & Integrations
| Permission | Description |
|---|---|
iot:read | View IoT devices |
iot:manage | Send commands, configure devices |
integrations:manage | Configure integration services |
Real-World Examples
Example 1: Create "Maintenance Supervisor" Role
Situation: Maintenance supervisors need to manage work orders and their team, but shouldn't access billing or system settings.
Solution:
- Go to Settings gear → Teams / Members → Teams tab
- Click Create Role
- Enter:
- Name:
Maintenance Supervisor - Description: "Manage work orders and maintenance team"
- Name:
- Add policies:
Allow: work-orders:*
Allow: assets:read
Allow: locations:read
Allow: teams:read
Allow: users:read - Save role
- Assign to supervisor users
Result: Supervisors can fully manage work orders and view assets/locations, but cannot modify system settings.
Example 2: Create "Read-Only Auditor" Role
Situation: External auditors need to view all data for compliance review but must not be able to change anything.
Solution:
- Go to Settings gear → Teams / Members → Teams tab
- Click Create Role
- Enter:
- Name:
Compliance Auditor - Description: "Read-only access for external audits"
- Name:
- Add policies:
Allow: work-orders:read
Allow: assets:read
Allow: locations:read
Allow: forms:read
Allow: decks:read - Explicitly deny write operations:
Deny: *:create
Deny: *:update
Deny: *:delete - Save role
Result: Auditors can view everything but cannot modify any records.
Example 3: Create "IoT Administrator" Role
Situation: IT team manages IoT devices and integrations but doesn't need access to work orders or user management.
Solution:
- Go to Settings gear → Teams / Members → Teams tab
- Click Create Role
- Enter:
- Name:
IoT Administrator - Description: "Manage IoT devices and integration services"
- Name:
- Add policies:
Allow: iot:*
Allow: integrations:*
Allow: assets:read (view sensors as assets)
Allow: decks:* (create IoT dashboards) - Save role
Result: IT staff can fully manage IoT infrastructure without accessing operational features.
Example 4: Create "Building Manager" Role
Situation: Building managers need to see their building's work orders and assets but shouldn't access other buildings or system settings.
Solution:
- Go to Settings gear → Teams / Members → Teams tab
- Click Create Role
- Enter:
- Name:
Building Manager - Description: "View and manage single building operations"
- Name:
- Add policies:
Allow: work-orders:read
Allow: work-orders:create
Allow: assets:read
Allow: locations:read
Allow: decks:read - Combine with team-based access control:
- Assign manager to building-specific team
- Restrict asset visibility to team
Result: Manager sees only their building's data based on team membership.
Assigning Roles to Users
Step 1: Open User Profile
- Go to Settings gear → Teams / Members
- Click on the user
Step 2: Update App Role
- Click Edit
- Find App Role field
- Select the appropriate role
- Click Save
Step 3: Verify Access
- User's permissions update immediately
- User may need to refresh their browser
- Test access to confirm correct permissions
Role Hierarchy and Conflicts
Policy Evaluation Order
When a user has multiple policies:
- Explicit Deny wins over Allow
- More specific policies override general ones
- If no matching policy, action is denied
Example Conflict Resolution
Policy 1: Allow work-orders:*
Policy 2: Deny work-orders:delete
Result: User can read, create, update work orders but CANNOT delete
Best Practices
Principle of Least Privilege
Grant only the permissions needed for the job:
| Bad Practice | Good Practice |
|---|---|
| Give everyone Admin | Create specific roles |
| Use wildcard (*) everywhere | List specific actions |
| One role for all | Role per function |
Regular Audits
| Frequency | Action |
|---|---|
| Monthly | Review admin accounts |
| Quarterly | Audit all roles |
| Annually | Full permission review |
Documentation
For each custom role, document:
- Purpose and intended users
- List of permissions
- When it was created/modified
- Approval process
Troubleshooting
User Can't Access Feature
| Issue | Cause | Solution |
|---|---|---|
| Button disabled | Missing permission | Add permission to role |
| 403 error | Denied by policy | Check for explicit Deny |
| Feature hidden | Role doesn't include it | Update role policies |
Permission Changes Not Working
| Issue | Cause | Solution |
|---|---|---|
| Old permissions still active | Browser cache | User should refresh/logout |
| Changes not saved | Validation error | Check all required fields |
Related Articles
Need help? Contact Infodeck Support