AfricaOSAfricaOS

Roles & Permissions

Complete guide to roles, permission matrix, custom roles, and access control best practices.

Roles & Permissions

Understand and configure access control for your organization. AfricaOS uses role-based access control (RBAC) with five built-in roles and optional custom roles (Enterprise).

Who can manage roles?

Owner and Admin can assign roles. Only Owner can create custom roles (Enterprise). Go to Settings → Team → Roles.


Built-in role hierarchy

Owner (1 per org)
  └── Admin
        └── Manager
              └── Staff
                    └── Viewer

Higher roles inherit all permissions of lower roles. Only one Owner exists per organization.


Permission matrix

Organization level

ActionOwnerAdminManagerStaffViewer
View organization details✓✓✓✓✓
Edit organization profile✓✓---
Manage branding✓✓---
Manage localization✓✓---
Manage billing & subscription✓✓---
View invoices & usage✓✓---
View audit log✓✓---
Delete organization✓----

Team management

ActionOwnerAdminManagerStaffViewer
Invite users✓✓---
Change roles✓✓*---
Suspend/activate users✓✓---
Remove users✓✓---
Manage module access✓✓---
Manage workspace access✓✓---

*Admin cannot promote/demote Owner or other Admins

Module access (per installed module)

ActionOwnerAdminManagerStaffViewer
Install/disable modules✓✓---
Configure module settings✓✓Assigned--
Access assigned modules✓✓✓✓Read-only
Create records✓✓AssignedAssigned-
Edit records✓✓AssignedAssigned-
Delete records✓✓Assigned--
Manage workflows✓✓Assigned--
Run reports/exports✓✓AssignedAssignedRead-only

*Assigned = module access set per user in Settings → Team → Edit user → Module access

Security

ActionOwnerAdminManagerStaffViewer
Manage 2FA (org policy)✓✓---
Manage SSO (WorkOS)✓----
Manage IP allowlist✓----
View session activity✓✓---
Force logout users✓✓---

Module permissions detail

Each module has these permission levels:

LevelCreateReadUpdateDeleteConfigure
Full✓✓✓✓✓
Write✓✓✓--
Read-✓---
None-----

Set per user: Settings → Team → Edit user → Module access


Workspace permissions

For organizations using workspaces (departments, locations, projects):

LevelDescription
FullManage workspace, all records, members
WriteCreate/edit records in workspace
ReadView records in workspace
NoneWorkspace hidden

Set per user: Settings → Team → Edit user → Workspace access


Custom roles (Enterprise)

Create tailored roles for specific job functions:

  1. Settings → Team → Roles → Create role
  2. Name and describe the role
  3. Select granular permissions from 100+ options
  4. Assign to users

Example custom roles

RoleModulesPermissionsUse case
Finance ManagerPayments, FinanceFull on billing, invoices, reports; Read on othersHandles all financial operations
HR ManagerHR, Staff, PatientsFull on staff records, leave, patients; Read on bookingsManages people and scheduling
Inventory ClerkStockFull on stock, suppliers, orders; Read on paymentsDaily warehouse operations
ReceptionistBookings, PatientsFull on bookings; Read on patients; Schedule onlyFront desk scheduling
Compliance OfficerAllRead on all; Audit log access; Export onlyCompliance and auditing
Sales RepPayments, BookingsWrite on invoices, bookings; Read on patientsCustomer-facing sales

Creating a custom role

  1. Go to Settings → Team → Roles
  2. Click Create custom role
  3. Enter name (e.g., "Finance Manager") and description
  4. Copy from - Start from an existing role (Admin, Manager, etc.)
  5. Toggle permissions on/off per category
  6. Click Create
  7. Assign to users in Settings → Team

Best practices

Principle of least privilege

Give minimum access needed. Start with Viewer, add permissions only when required.

Use roles, not individual perms

Assign roles consistently. Avoid one-off permission grants - create a custom role instead.

Quarterly access reviews

Audit who has what access every quarter. Remove access for departed or changed roles.

Separation of duties

No single user should control billing + approve payments + manage users. Split across roles.

Document custom roles

Keep a living document of each custom role purpose, permissions, and who holds it.

Test before assigning

Create a test user, assign the role, verify access matches expectations.


Common patterns

Healthcare clinic

  • Owner - Practice owner
  • Admin - Office manager
  • Manager - Lead physician, head nurse
  • Staff - Physicians, nurses, medical assistants
  • Viewer - Billing partner, auditors

Retail chain

  • Owner - Business owner
  • Admin - Regional managers
  • Manager - Store managers
  • Staff - Sales associates, stock clerks
  • Custom: Inventory Clerk - Stock only

Professional services

  • Owner - Managing partner
  • Admin - Operations director
  • Manager - Practice leads
  • Staff - Consultants, associates
  • Custom: Finance Manager - Billing only

Troubleshooting

IssueLikely causeFix
User sees module but cannot editModule access set to "Read"Change to "Write" or "Full"
User cannot see module at allModule access set to "None"Assign appropriate level
Admin cannot demote another AdminAdmins cannot manage other AdminsOwner must do it
Custom role not appearingEnterprise feature not enabledCheck plan or contact support

On this page