SL
SkillsLao Backoffice
Prototype
๐ŸŽฌ Simulate:

SkillsLao TVET Back-office


Staff accounts are provisioned by administrators.
Contact your Super Administrator if you need access.

๐Ÿ“ Spec notes โ€” UC-IDP.07 / SCR-IDP.29 (fields, actions, requirements)
Identity
  • Screen: SCR-IDP.29 โ€” Staff Login
  • Use case: UC-IDP.07 โ€” Login โ€” Staff
Brief description

Back-office portal login page for staff (Instructor, Program Administrator, Super Administrator) โ€” displays email and password input fields as the primary credential, and a "Sign in with Google" button as an optional single sign-on channel. No verification code or PIN options because staff access only through a web browser (per FEAT-IDP.01), unlike the learner login page (SCR-IDP.07). When authentication fails, feedback is shown inline on the same page (no redirect): AF-3B (wrong password) โ€” inline "Invalid email or password" message; AF-3C (5 failed attempts) โ€” 15-minute countdown + Sign in button disabled; AF-3A (account not found) โ€” directs to contact an Admin (staff cannot self-register); AF-3D (account suspended/revoked) โ€” directs to contact the Super Administrator. Includes a "Forgot Password?" link for password reset (โ†’ UC-IDP.22).

Fields
  • email "Email" โ€” text ยท required ยท always visible ยท validation: format:email, max_length:255
  • password "Password" โ€” password ยท (not persisted โ€” compared against AuthIdentity.credential) ยท required ยท always visible ยท validation: min_length:8
  • error_message "Error Message" โ€” text ยท read-only ยท visible when auth_failed == true && lockout_active == false && account_not_found == false && account_suspended == false && account_revoked == false ยท fallback: "Invalid email or password"
  • lockout_countdown "Lockout Countdown" โ€” computed ยท read-only ยท visible when lockout_active == true ยท real-time MM:SS countdown (see additional req. 2)
  • account_not_found_notice "Account Not Found" โ€” text ยท read-only ยท visible when account_not_found == true ยท fallback: "Please contact your administrator to create an account for you."
  • account_suspended_notice "Account Status" โ€” computed ยท read-only ยท visible when account_suspended == true || account_revoked == true ยท fallback: "Your account cannot be accessed. Please contact your Super Administrator to restore access."
Actions
  • sign_in "Sign in" โ€” enabled when required_fields_valid && lockout_active == false ยท triggers UC-IDP.07-M-2 โ†’ /home/ (UC-IDP.26 โ€” View Staff Portal Home)
  • sign_in_google "Sign in with Google" โ€” always enabled ยท triggers UC-IDP.07-A-2A-1 โ†’ SUC-IDP-03 (/authenticate-via-google-sso/)
  • forgot_password "Forgot Password?" โ€” always enabled ยท triggers UC-IDP.22-M-1 โ†’ /forgot-password/
Additional requirements
  1. Error messages (wrong password, suspended account, account not found, revoked account) must be displayed inline in the Login state feedback region โ€” not as browser alert dialogs. [refs: NFR-11]
  2. When an account is temporarily suspended (AF-3C, lockout_active == true): the "Sign in" button must be disabled and a real-time MM:SS countdown shown until the 15-minute lock expires. [refs: SS-IDP.13]
  3. Keyboard focus order: Email โ†’ Password โ†’ "Sign in" โ†’ "Sign in with Google" โ†’ "Forgot Password?" โ€” Tab/Shift+Tab must navigate in this order. [refs: NFR-11]
  4. The "Sign in with Google" button must use the Google-branded button style (Google icon + "Sign in with Google" text) per Google Sign-In Branding Guidelines.
  5. Error message for wrong password (AF-3B) must always read "Invalid email or password" regardless of whether the email or password is incorrect โ€” to prevent account enumeration.

AF-4A (staff assigned to multiple institutes) now hands off to its own standalone page โ€” see /login-staff/select-institute (SCR-IDP.77) for its Spec notes.