low complexity extracted Authentication & Access Control Confidence: 100%
3
Components
198
Shared
6
User Stories
Yes
Analyzed

Description

A dedicated screen shown when a user's role does not have access to the mobile application — specifically global administrators whose work is done through the web-based admin portal rather than the mobile app. The screen must clearly communicate why access is restricted and where the user should go instead. This screen prevents confusion for users who accidentally attempt to use the mobile app with a global admin account, maintaining a clean separation between the mobile peer mentor experience and the administrative back-office.

Analysis

Business Value

Prevents support burden from global admins attempting to use the wrong interface, and maintains a clear product boundary between the mobile app and the admin portal.

Implementation Notes

Rendered as a terminal route when role check fails for mobile access. Should display org logo, a clear explanation message, and a link or instruction pointing to the admin portal URL. Logout button must be present.

Components (201)

User Interface (1)

Service Layer (1)

Data Layer (1)

Shared Components

These components are reused across multiple features

User Interface (59)

ui Role Switch Widget medium Shared ui Role-Aware Bottom Navigation medium Shared ui Activity Type Selection Screen low Shared ui Speech-to-Text Field Overlay medium Shared ui Receipt Capture Widget medium Shared ui Peer Mentor Single Selector low Shared ui Proxy Audit Badge Widget low Shared ui Export Period Picker low Shared ui Contact Card Widget low Shared ui Contact Search Bar low Shared ui Peer Mentor Card Widget low Shared ui Activity History List low Shared ui Multi-Chapter Affiliation Chip Widget medium Shared ui Certification Status Badge low Shared ui Duplicate Activity Warning Dialog medium Shared ui Mentor Multi-Select Widget medium Shared ui Map Filter Panel medium Shared ui Claim Status Badge low Shared ui Export Date Range Picker low Shared ui Custom Date Range Picker low Shared ui Duplicate Activity Warning Dialog low Shared ui Proxy Activity Form medium Shared ui Proxy Peer Mentor Selector medium Shared ui Expected Return Date Picker low Shared ui Pause Activation Screen low Shared ui Pause Status Indicator low Shared ui Admin KPI Stat Widget low Shared ui Organisation Hierarchy Navigator high Shared ui Bufdir Period Selector Widget low Shared ui Export History List medium Shared ui Activity Type Donut Chart medium Shared ui Monthly Activity Bar Chart medium Shared ui Statistics Period Filter Bar low Shared ui Statistics Summary Cards low Shared ui Notification Badge Widget low Shared ui Certificate Expiry Status Indicator low Shared ui Animated Stat Card Widget medium Shared ui In-App Notification Banner low Shared ui Accessible Modal Sheet Widget high Shared ui Live Region Announcer medium Shared ui Semantics Wrapper Widget medium Shared ui Sensitive Field Warning Dialog high Shared ui Confirm Before Submit Screen medium Shared ui Inline Contextual Help Widget low Shared ui Labelled Navigation Bar low Shared ui Plain Language Error Display low Shared ui Single-Action Screen Layout medium Shared ui Wizard Progress Indicator low Shared ui Accessible Text Style System medium Shared ui Accessible Touch Target Wrapper low Shared ui Contrast-Safe Color Palette Widget medium Shared ui Accessible Bottom Navigation Bar medium Shared ui Modal Close Button low Shared ui Persistent Back Button low Shared ui Vertical Scroll Container low Shared ui Organization Card Widget low Shared ui Terminology-Aware Text Widget low Shared ui FeatureGate Widget low Shared ui Chapter Switcher medium Shared

Service Layer (52)

service Authentication Service medium Shared service Authentication Session Manager medium Shared service Biometric Authentication Service medium Shared service Biometric Authentication Service medium Shared service Biometric Authentication Service medium Shared service Permission Checker Service medium Shared service Role State Manager medium Shared service No-Access Route Guard low Shared service Activity Type Metadata Resolver low Shared service Chapter Scope Resolver medium Shared service Organisation Hierarchy Resolver medium Shared service Coordinator Notification Service medium Shared service Duplicate Activity Detection Service high Shared service Mentor Filter Service low Shared service Receipt Threshold Validator low Shared service Approval Status Notification Service medium Shared service Threshold Evaluation Service medium Shared service Declaration Encryption Service high Shared service Organization Feature Flag Service low Shared service Participant Deduplication Service high Shared service Reporting Period Service medium Shared service Activity Attribution Service low Shared service Proxy Duplicate Detection Service medium Shared service Pause Management Service medium Shared service Pause Notification Service medium Shared service Admin Export Service medium Shared service Admin Row-Level Security Guard high Shared service Organisation Hierarchy Service high Shared service User Management Service high Shared service Role Access Validator low Shared service Peer Mentor Stats Aggregator medium Shared service Push Notification Dispatcher medium Shared service Notification Preference Service low Shared service Scenario Deep-Link Router medium Shared service Scenario Notification Content Builder medium Shared service Badge Criteria Integration medium Shared service Activity Summary Aggregator low Shared service Focus Management Service medium Shared service Screen Reader Detection Service medium Shared service Sensitive Field Privacy Guard high Shared service Plain Language Content Service medium Shared service Wizard State Manager medium Shared service Tab State Manager medium Shared service Organization Route Guard medium Shared service Tenant Context Service high Shared service Label Key Resolver Service low Shared service Organization Labels Notifier medium Shared service FeatureFlagProvider (Riverpod) medium Shared service Access Scope Service high Shared service Hierarchy Aggregation Service high Shared service Hierarchy Service high Shared service Unit Assignment Service medium Shared

Data Layer (33)

Infrastructure (54)

infrastructure Keyboard-Aware Layout Utility low Shared infrastructure Supabase Auth Client low Shared infrastructure Deep Link / OAuth Redirect Handler medium Shared infrastructure Secure Storage Adapter low Shared infrastructure Supabase Session Manager medium Shared infrastructure URL Launcher Utility low Shared infrastructure Local Storage Adapter low Shared infrastructure Supabase Activity Client low Shared infrastructure Organization Labels Provider low Shared infrastructure Supabase Client low Shared infrastructure Organisation Field Config Loader medium Shared infrastructure Speech-to-Text Adapter medium Shared infrastructure File Download Handler low Shared infrastructure Duplicate Reviewed Flag Middleware low Shared infrastructure Contact RLS Query Builder low Shared infrastructure Contact Form Validator low Shared infrastructure Design Token Theme low Shared infrastructure Organization Labels Provider low Shared infrastructure Supabase Client Provider low Shared infrastructure Search Debounce Utility low Shared infrastructure Expense Type Analytics Tracker low Shared infrastructure Receipt Image Picker Integration low Shared infrastructure CSV / JSON File Generator medium Shared infrastructure Coordinator Role Guard low Shared infrastructure Nightly Job Scheduler medium Shared infrastructure Supabase RLS Policy Configuration high Shared infrastructure Export File Storage Adapter low Shared infrastructure Supabase Storage Adapter low Shared infrastructure Peer Mentor Pause Management Service medium Shared infrastructure Push Notification Service medium Shared infrastructure fl_chart Adapter medium Shared infrastructure Push Notification Service low Shared infrastructure FCM Push Notification Sender medium Shared infrastructure FCM Notification Dispatcher medium Shared infrastructure Push Notification Dispatcher medium Shared infrastructure Supabase Realtime Subscription Service medium Shared infrastructure Organisation Data Isolation Guard low Shared infrastructure Push Notification Dispatcher medium Shared infrastructure Deep Link Handler medium Shared infrastructure QR Code Generator low Shared infrastructure Share Sheet Bridge low Shared infrastructure Semantics Service Facade medium Shared infrastructure Accessibility Design Token Enforcer medium Shared infrastructure Accessible Theme Builder medium Shared infrastructure Navigation Route Configuration medium Shared infrastructure Accessibility Live Region Announcer low Shared infrastructure Feature Flag Provider low Shared infrastructure Secure Storage Adapter low Shared infrastructure Supabase RLS Tenant Scope Configurator medium Shared infrastructure Label Key Registry low Shared infrastructure Terminology Riverpod Providers low Shared infrastructure WCAG Semantics Label Resolver low Shared infrastructure Feature Flag Key Constants low Shared infrastructure RLS Policy Manager high Shared

User Stories (6)

External Link to Request Access or Learn More From No-Access Screen
medium 2 pts

As a As a Organization Administrator

I want to tap a link on the no-access screen that opens the organization's coordinator contact page or support resource in an external browser

So that I can request elevated access or find help without leaving the app manually or searching for contact information

Acceptance Criteria
  • Given the no-access config repository has an external URL configured for the blocked route, when the no-access screen is rendered, then a labelled external link button is displayed below the denial explanation
  • Given the peer mentor taps the external link, when the url launcher utility processes the request, then the URL opens in the device's default browser or mail client
  • Given the url launcher fails to open the URL, when the error is caught, then a plain-language fallback message (e.g., 'Could not open link — please contact your coordinator directly') is shown
  • +2 more
View Full Story →
Contextual Explanation of Why Access Is Denied
high 3 pts

As a As a Organization Administrator

I want to see a brief, plain-language explanation on the no-access screen that tells me specifically why I cannot access a feature

So that I can take appropriate action — such as contacting my coordinator — instead of feeling confused or frustrated

Acceptance Criteria
  • Given a peer mentor is redirected to the no-access screen from a coordinator-only route, when the screen renders, then a route-specific denial message is displayed rather than a generic fallback
  • Given the no-access config repository contains a support contact URL for the blocked feature, when the no-access screen renders, then a clearly labelled 'Contact Support' or 'Contact Coordinator' button is visible
  • Given the denial message is displayed, when it is evaluated against cognitive accessibility criteria, then it uses short sentences, avoids technical jargon, and follows the plain-language content service guidelines
  • +2 more
View Full Story →
Role Switch Option When Peer Mentor Has Multiple Roles
high 5 pts

As a As a Organization Administrator

I want to see a role switch option on the no-access screen when I have another role that would grant me access

So that I can switch to the appropriate role and continue my task without logging out and back in

Acceptance Criteria
  • Given a peer mentor who also holds a coordinator role attempts to access a coordinator-only route, when the no-access screen is shown, then a role switch widget offering the coordinator role is displayed
  • Given the role switch widget is displayed and the peer mentor selects the coordinator role, when the role state manager updates the active role, then the user is navigated to the originally requested route without re-authentication
  • Given a peer mentor has only one role and lacks permission for the blocked route, when the no-access screen renders, then no role switch option is shown
  • +2 more
View Full Story →
Safe Navigation Back to an Accessible Area After Access Denial
critical 2 pts

As a As a Organization Administrator

I want to have a clearly labelled back button or 'Go to Home' action on the no-access screen

So that I can return to an area I am permitted to use without needing to close and reopen the app

Acceptance Criteria
  • Given a peer mentor is on the no-access screen, when they tap the back button, then they are navigated to the previous accessible screen without app state loss
  • Given a peer mentor is on the no-access screen and there is no safe previous route, when they tap 'Go to Home', then they are navigated to the role-based home screen
  • Given the no-access screen is displayed, when the peer mentor inspects the UI, then a persistent back button is visible in the header rather than relying on swipe-to-dismiss gestures
  • +2 more
View Full Story →
Clear Access Denial Feedback When Navigating to Restricted Area
critical 3 pts

As a As a Organization Administrator

I want to see a clear, informative no-access screen when I attempt to navigate to a section I do not have permission to use

So that I immediately understand that the area is restricted and I have not made a mistake or encountered a technical error

Acceptance Criteria
  • Given a peer mentor is authenticated and navigates to a coordinator-only route, when the role route guard evaluates permissions, then the no-access screen is displayed instead of the target route
  • Given the no-access screen is displayed, when the peer mentor views the screen, then a headline such as 'Access Restricted' and a plain-language explanation of the restriction is visible
  • Given the app uses organization-specific terminology, when the no-access screen renders, then labels are resolved through the organization labels provider so wording matches the org's configured terminology
  • +2 more
View Full Story →
Accessible No-Access Screen for Screen Reader and Low-Vision Users
critical 3 pts

As a As a Organization Administrator

I want the no-access screen to be fully navigable with a screen reader and to display with sufficient contrast and scalable text

So that I can understand the access restriction and my options even if I use assistive technology or have low vision

Acceptance Criteria
  • Given a VoiceOver user lands on the no-access screen, when the screen appears, then the live region announcer triggers an announcement of the denial headline without requiring manual navigation
  • Given a screen-reader user navigates through the no-access screen, when they traverse all focusable elements, then the heading, explanation text, and all action buttons are announced in logical order with appropriate roles
  • Given the no-access screen is displayed, when it is evaluated against WCAG 2.2 AA contrast requirements, then all text elements meet a minimum 4.5:1 contrast ratio against the background
  • +2 more
View Full Story →