AAuditPro Suite· Complete manual
Complete manual Users + Roles

The 9 default roles

RoleHierarchyTypical use
super_admin1 (highest)System administrator · all permissions
partner10Engagement partner · all-scope on most modules
manager20Audit manager · department scope
senior_auditor30Senior · assigned scope on jobs/clients
staff_auditor50Staff · assigned scope
accountant40Finance ops · full M11/M12, view M07
admin_staff35Admin · all-scope on most ops minus delete
read_only90External auditor · view-only across modules
portal (future)99Reserved for client-portal users

The permission model

Each permission is structured as module.action + optional scope:

Examples: m07.view (assigned), m11.write_off (all), m13.manage_compensation (all).

RBAC matrix screen

URL: /settings/roles-and-permissions. Visual grid:

Most firms use defaults; customisation is for unusual organisational structures.

User row fields

1email
UNIQUE · login identifier

Case-insensitive match.

2password
bcrypt hash

Never stored plaintext. Min 12 chars on set.

3full_name
Required

Displayed in headers, audit logs, sign-offs.

4role_id
FK to roles

Single role per user. Hierarchy resolved via role.

5department_id
FK · scope-resolution

Drives "department" scope filtering.

6employee_id
Optional FK

Links user to M13 employee record. Powers My Profile, leave portal, expense submission.

7is_active
TINYINT(1)

Inactive users cannot login but data preserved (audit-trail integrity).

8last_login_at + last_login_ip
Audit fields

Stamped on each login. Used in active-sessions + admin reports.

9failed_login_count + last_failed_login_at
Brute-force tracking

Drives 5-attempts → 30-min lockout.

Step-by-step — onboard a new user

  1. Administration → Users → New user

  2. Fill: email · full_name · role · department · employee link (if exists)

  3. Save

    Auto-generates 12-char temp password. Emailed via M17 to user's email with reset link.

  4. User receives email · sets new password · logs in

  5. Active session captures their device + IP

  6. Audit log entry: m01.user.create

Active sessions admin view

URL: /settings/active-sessions. Lists all currently-active sessions across the firm:

Useful for: terminated employee whose sessions need killing immediately, suspicious activity investigation, partner-mandated mass-logout (e.g. before a security audit).

Permission editor

Settings → Roles & Permissions → click any role → grants editor:

RBAC enforcement points

RBAC is enforced at every layer:

Defence in depth — UI hiding alone is not security; the service-layer check is the real gate.

Watch out

Don't grant super_admin to multiple users. The role bypasses every RBAC check — single super_admin reduces blast radius if an account is compromised. Most firms have 1 super_admin (system designer / IT) and use partner role for all business users.

Tip — temporary elevation

If a junior needs partner-level access for a specific task (e.g. running a one-off report), temporarily grant + immediately revoke afterward. Don't share partner login. Audit log captures both grants — partner sees what was elevated and why.