SL
SkillsLao Backoffice
Prototype
๐ŸŽฌ Simulate:

Forgot Password

Enter your account email โ€” the system will send a one-time code to verify your identity.

Enter the email address associated with your staff or instructor account.

Staff accounts are provisioned by administrators โ€” contact your Super Administrator if you need access.

Screen Flow (from flow.puml):

โ†’ contact verified, OTP sent โ†’ Email OTP โ†’ SUC-IDP-01 โ†’ suspended / Google SSO only (error inline, end of flow) โ†’ [end]
๐Ÿ“ Spec notes โ€” UC-IDP.22 / SCR-IDP.39 (fields, actions, requirements)
Identity
  • Screen: SCR-IDP.39 โ€” Forgot Password Landing
  • Use case: UC-IDP.22 โ€” Forgot Password
Brief description

Entry screen of the forgot password flow. Staff/Instructor/Super Administrator see Email OTP only (FEAT-IDP.05) โ€” the OTP channel selector is hidden; Mobile OTP is learner-only. User enters their account email and presses "Continue" for the system to look up the account and dispatch an OTP. Handles inline errors for: account not found (AF-4A), Google-SSO-only account (AF-4B), suspended account (AF-4C), and OTP send failure (AF-5A) โ€” all shown inline without navigating away.

Fields
  • otp_channel "OTP Delivery Method" โ€” enum {email_otp, mobile_otp} ยท default email_otp ยท staff: hidden per FEAT-IDP.05; system defaults to email_otp
  • email "Email" โ€” text ยท required ยท validation: format:email, max_length:255 ยท visible when otp_channel == email_otp (always in backoffice)
  • country_code "Country code" โ€” text ยท read-only ยท default "+856" ยท learner-only; not rendered in backoffice
  • mobile_number "Mobile Number" โ€” phone ยท learner-only; not rendered in backoffice
  • inline_message "Notification Message" โ€” text ยท read-only ยท visible when form_error != null ยท values: account_not_found / google_only / account_suspended / otp_send_failed
Actions
  • continue "Continue" โ€” enabled when required_fields_valid ยท triggers UC-IDP.22-M-4 โ†’ SUC-IDP-01 โ†’ /authenticate-via-email-otp/?returnUrl=/forgot-password/reset-password&cancelUrl=%2Fforgot-password%2F
  • back_to_login "Back to Login" โ€” always enabled โ†’ /login-staff/
Additional requirements
  1. For email_otp โ†’ show only the email field; for mobile_otp โ†’ show country_code (+856, read-only) and mobile_number side by side. Mobile OTP is learner-only โ€” not rendered in backoffice. [refs: โ€”]
  2. All error cases must be shown inline in the "Inline message" region โ€” the page must not navigate; the user can edit and retry immediately. [refs: โ€”]
  3. Mobile OTP channel is only available to Learner accounts (FEAT-IDP.02). For Staff/Instructor/Admin, only email channel is shown (FEAT-IDP.05). [refs: FEAT-IDP.02, FEAT-IDP.05]
๐Ÿ“ Reviewer notes (overlay)

The page header block (icon circle + title + subtitle) must sit on the white background inside the card โ€” render the text-center header as the first child of .card-body, above the form regions.

Source: Prototype/screen-notes/forgot-password/_uc.md โ€” applied as override layer at generation time