Single entry point for all roles. Role is resolved server-side after authentication — no role selector shown. On success the user is routed to their role-appropriate dashboard.
Email field not clearedNo account lockout in Demo 1
00.C ● Demo 1○ Full Product
App Header — Badge States
The right-hand side of the app header adapts to the authenticated user's org and role profile. Four states are possible. In Demo 1 all badges are display-only — the tappable popup (Flow 00.B) is a Full Product feature. States 2–4 show the full range of contexts available to that user profile: each nav strip shows the header as it appears when that context is active, and the divider label shows whether switching to it is instant or requires identity re-verification.
Display Rules
One org + one role → role only, badge is non-interactive
One org + multi-role → role only, badge shows ▾ and opens popup
Multi-org → org name shown above role in a two-line badge
All tappable badges show ▾ chevron to signal interactivity
Lock badges (🔒) appear inside the popup — not on the closed badge
In Demo 1 all badges are display-only regardless of profile state
State 1 — 1 org · 1 role
Only context
☰
VOCheck
Driver
🔔
Home
Demo Transport Pty Ltd
One context — badge is display-only
No ▾ chevron — badge is not tappable·Most Demo 1 users will see this state
State 2 — 1 org · Driver + Manager
Active context
☰
VOCheck
Driver
🔔
→ tap badge → switch instantly
Also available
☰
VOCheck
Manager
🔔
Role switches instantly — same org, no re-auth
Same org — no re-auth required to switch·Org name not shown — single org, no ambiguityEither role can be the "active" starting point
State 3 — Driver (DT) + Assessor job (RF)
Active context
☰
VOCheck
Demo TransportDriver
🔔
→ tap badge → verify identity 🔒
Also available
☰
VOCheck
Regional FreightAssessor
🔔
All switches require re-auth — different org each time
Both are different orgs — 🔒 on all popup buttonsOrg always shown — user always knows which data scope is active·Assessor is an external invited role at Regional Freight
Manager ↔ Driver switches instantly — same org→ Regional Freight · Assessor needs re-auth 🔒Org name always shown — active data scope is never ambiguous
Flow 00.B ○ Full Product
Org & Role Switcher
The recommended design uses two-line buttons — organisation name prominent, role beneath — to show all available switching options in a compact popup. A lock badge (🔒) on cross-org buttons signals that tapping will trigger identity verification. Same-org role switches are instant; cross-org switches go straight to identity verification, which serves as both security gate and confirmation. Scenario A shows the standard multi-role / multi-org flow. Scenario B shows the external assessor use case with data scope isolation. Earlier design iterations are in the collapsible panel below.
Key UX Principles
Entry point: tap the role badge — always visible in the header
One org · one role — badge is non-interactive, no popup opens
Current org / role shown as navy filled button; others as outlined buttons
Same-org: tap any outlined button to switch instantly — no confirm step
Cross-org: 🔒 lock badge on button — tap goes straight to identity verification
Re-auth screen states the destination and offers cancel — nothing changes until verified
Session state clears only after successful re-auth; new role's view then loads
Design Iterations — how we got here
Starting point The initial design (Option A) used separate Organisation and Role sections with radio selectors and a "Switch Context" confirm button. The problems: "switch context" is technical jargon; a separate confirm step before re-auth is redundant friction; and in the common case (single org, multiple roles) the separate sections added visual complexity without value. Options B → D explored progressively simpler approaches, arriving at the two-line button pattern with a lock badge for cross-org.
Option ATwo-section popup: separate Organisation and Role selectors. Interactive when multiple options exist; locked static text when only one option.
1. One org · One role
☰
VOCheck
Driver
🔔
Home
Demo Transport Pty Ltd
Fit-for-Duty
Complete · 07:31 am
✓
Pre-Start
Complete · 07:43 am
✓
Organisation
Demo Transport Pty Ltd only org
Role
Driver only role
No other org or role available.
Fully locked — info only, no action
No Switch button shown·Most demo users will see this state
→
2. One org · Multi-role
☰
VOCheck
Driver
🔔
Home
Demo Transport Pty Ltd
Fit-for-Duty
Complete · 07:31 am
✓
Pre-Start
Complete · 07:43 am
✓
Organisation
Demo Transport Pty Ltd only org
Role
Manager
Driver
Switch Organisation / Role
Org locked — role still switchable
Org section shows as info — no radio·User can switch between Manager and Driver
→
3. Multi-org · Multi-role
☰
VOCheck
Manager
🔔
Dashboard
Demo Transport Pty Ltd
Ready
3/5
Defects
2
Lic exp
1
VOC exp
1
Organisation
Demo Transport Pty Ltd
Regional Freight Services
Role
Manager
Driver
Switch Organisation / Role
Both orgs & both roles interactive
Orange ring on badge = popup is open·Filled dot = currently active selection
→
4. After switching org
☰
VOCheck
Manager
🔔
Dashboard
Demo Transport Pty Ltd
Ready
3/5
Defects
2
Lic exp
1
VOC exp
1
Organisation
Demo Transport Pty Ltd
Regional Freight Services
Role
Driver only role
Switch Organisation / Role
Org switched → role auto-selects & locks
Regional Freight now selectedDriver is the only role → locked·Role section updates without page reload
Option BFlat combined context list. Same-org role switches are instant — no confirm needed. Cross-org switches show a labelled confirm button only after the target row is tapped.
1. One org · One role
☰
VOCheck
Driver
🔔
Home
Demo Transport Pty Ltd
Fit-for-Duty
Complete · 07:31 am
✓
Pre-Start
Complete · 07:43 am
✓
Badge tap has no effect — nothing to switch
Badge is non-interactive — no ring, no popup·Only org shown for Option B when no other context exists
→
2. One org · Multi-role
☰
VOCheck
Driver
🔔
Home
Demo Transport Pty Ltd
Fit-for-Duty
Complete · 07:31 am
✓
Pre-Start
Complete · 07:43 am
✓
Switch Role
Manager
Driver
Tap a role to switch instantly — no confirm needed.
Tapped row highlighted in orange tintConfirm button names the destination explicitlyTapping confirm triggers identity verification — see Scenario below for the full re-auth flow
Option CButtons replace radio dots — each available org and role shown as a two-line tappable button. Same-org switches are instant; cross-org shows a confirm button after the destination button is tapped.
1. One org · One role
☰
VOCheck
Driver
🔔
Home
Demo Transport Pty Ltd
Fit-for-Duty
Complete · 07:31 am
✓
Pre-Start
Complete · 07:43 am
✓
Badge tap has no effect — nothing to switch
Badge is non-interactive — no popup
→
2. One org · Multi-role
☰
VOCheck
Driver
🔔
Home
Demo Transport Pty Ltd
Fit-for-Duty
Complete · 07:31 am
✓
Pre-Start
Complete · 07:43 am
✓
Switch Organisation / Role
Demo TransportDriver
Demo TransportManager
Tap to switch instantly — no confirm needed.
Tap outside to close.
Same-org switch — tap Manager to switch instantly
Navy filled button = current selection·Outlined button = available, instant switch
→
3. Multi-org · Multi-role
☰
VOCheck
Manager
🔔
Dashboard
Demo Transport Pty Ltd
Ready
3/5
Defects
2
Lic exp
1
VOC exp
1
Switch Organisation / Role
Demo TransportManager
Demo TransportDriver
Regional FreightDriver
Same-org switches instantly. Cross-org shows a confirm button.
Tap outside to close.
All options visible — org name prominent, role beneath
Org name is the primary label — role is secondary·Regional Freight is cross-org — will need confirm
Orange border + tint on selected buttonRole label turns orange — reinforces the destinationTapping confirm triggers identity verification — see Scenario below
⚠ Open question — same-org access escalation Currently, switching from Driver to Manager within the same org is instant with no verification. Since Manager has significantly broader data access than Driver, this upward role escalation may warrant re-authentication — the lock badge pattern could apply here too. Switching down (Manager → Driver) is not a concern; you are reducing your own access. Recommend discussion with legal / governance team before build. See also data governance doc FD-12.
💡 Future consideration — combined role dashboard An alternative to context-switching was discussed: a single post-login dashboard combining all roles' data and actions in one view. Advantages: fewer taps, no "which mode am I in?" friction for same-org multi-role users. Decided against for the current build — it complicates data minimisation (APP 3) and use/disclosure boundaries (APP 6), makes HVNL/CoR audit attribution less clear (who acted, in which capacity?), and still requires cross-org switching anyway, giving us two coexisting paradigms for no net gain. Context-switching remains the correct approach. A lighter future option worth revisiting: a "my tasks" nudge widget on the Manager dashboard surfacing pending Driver tasks without a full role switch, keeping attribution clean.
Scenario ARecommended design. Standard multi-org / multi-role flow — two-line buttons, lock badge on cross-org options, re-auth as the combined security gate and confirmation.
1. One org · One role
☰
VOCheck
Driver
🔔
Home
Demo Transport Pty Ltd
Fit-for-Duty
Complete · 07:31 am
✓
Pre-Start
Complete · 07:43 am
✓
Badge tap has no effect — nothing to switch
Badge is non-interactive — no popup
→
2. One org · Multi-role
☰
VOCheck
Driver
🔔
Home
Demo Transport Pty Ltd
Fit-for-Duty
Complete · 07:31 am
✓
Pre-Start
Complete · 07:43 am
✓
Switch Organisation / Role
Demo TransportDriver
Demo TransportManager
Tap to switch instantly — no confirm needed.
Tap outside to close.
Same as Option C — same-org is unchanged
·No difference from Option C for same-org switches
→
3. Multi-org · Multi-role
☰
VOCheck
Manager
🔔
Dashboard
Demo Transport Pty Ltd
Ready
3/5
Defects
2
Lic exp
1
VOC exp
1
Switch Organisation / Role
Demo TransportManager
Demo TransportDriver
Regional FreightDriver🔒
🔒 = tap triggers identity verification before switching.
Tap outside to close.
Lock badge flags cross-org buttons before the user taps
Lock badge on Regional Freight — signals identity verification required·Same-org buttons have no badge — tap switches immediately
→
4. Tap → re-auth immediately
☰
VOCheck
Manager
🔔
🔒
Verify your identity
Switching to Regional Freight · Driver
◉
Face ID / Touch ID
or
Enter PIN
Cancel — stay where you are
Re-auth fires immediately — destination shown, cancel still available
One step fewer than Options B and C — no separate confirm buttonDestination is stated here ("Switching to Regional Freight · Driver") — user can read it before verifying"Cancel — stay where you are" is always available — nothing changes until re-auth succeeds
Scenario BExternal assessor use case — a manager at one org has been invited as assessor at another. Demonstrates the cross-org invitation flow, lock badge behaviour, and data scope isolation on switch.
⚖ Data governance External assessors are invited by the org, not employed by it. On switching to the assessor org the full session state is cleared — no Demo Transport data remains in scope (APP 11). Access within Regional Freight is intentionally narrow: the assessor sees only their assigned VOC assessment workflow, with no visibility of fleet status, driver roster, management functions, or any other personal information held by that org (APP 3 — collection minimisation; APP 6 — use and disclosure limited to the stated purpose of the invitation). All actions taken in the assessor role are logged against Regional Freight's audit trail. A lock badge on the cross-org button signals that tapping will trigger identity verification. The re-auth screen then serves as both security gate and confirmation: it states the destination explicitly and the user can cancel at that point — nothing changes until re-auth succeeds (biometric via WebAuthn, or app-defined PIN as fallback). See data governance doc §4 (Re-Authentication), §5 (External Assessors), and open items FD-01, FD-04.
1. Popup open
☰
VOCheck
Manager
🔔
Dashboard
Demo Transport Pty Ltd
Ready
3/5
Defects
2
Lic exp
1
VOC exp
1
Switch Organisation / Role
Demo TransportManager
Regional FreightAssessor🔒
🔒 = tap goes straight to identity verification.
Tap outside to close.
Manager at Demo Transport; invited Assessor at Regional Freight
Assessor entry appears because of the invitationLock badge signals cross-org — identity verification required on tap
→
2. Verify identity
☰
VOCheck
Manager
🔔
🔒
Verify your identity
Switching to Regional Freight · Assessor
◉
Face ID / Touch ID
or
Enter PIN
Cancel — stay where you are
Identity check fires before the switch completes
Nav still shows Manager / Demo Transport — not yet switchedBiometric (WebAuthn) is primary; PIN is app-defined fallback — FD-01Cancel here aborts the switch — no state change, no data cleared·Session state only clears after successful re-auth
→
3. Assessor dashboard
☰
VOCheck
Assessor
🔔
Assessments
Regional Freight Services
VOC Assessment
T. Williams · Rigid · Due today 14:00
DUE
VOC Assessment
R. Okafor · B-Double · Scheduled tomorrow
SCHED
Scoped assessor view — Regional Freight data only
Badge shows "Assessor" — role change confirmedOnly assigned VOC assessments visible — no fleet data, no driver rosterOrg sub-header confirms active data environment·Demo Transport data entirely out of scope