# Checklist: Systematic Permission Verification (103 Actions)

## Phase 1: Test Environment Setup (Using Tinker)
- [ ] Create test accounts for all roles if they do not exist:
    - **ULTIMATE**: `777` (already exists).
    - **SUPER_OPERATOR**: `test_super_op`
    - **OPERATOR**: `test_op`
    - **COORDINATOR**: `test_coord`
    - **RIDER**: `test_rider`
    - **POS_TERMINAL**: `test_pos`
    - **USER**: `test_user`
- [ ] Ensure all test accounts use the password: `123123`.

## Phase 2: Role-Based Verification (ULTIMATE - 777)
- [ ] **Auth**: Login to `777` with `123123`. Confirm success.
- [ ] **User Mgmt**: Navigate to `/user-list`. Verify full list of users is visible.
- [ ] **Action Group: Create User Checks**
    - [ ] Navigate to `/create-user`.
    - [ ] Verify dropdown includes `ULTIMATE`, `SUPER_OPERATOR`, `OPERATOR`, `RIDER`, etc.
    - [ ] Check if `CreateUserPOSTerminal` action is functional.
- [ ] **Action Group: Ultimate Tools Checks**
    - [ ] Navigate to `/ultimate-console`. Confirm it loads with full stats and maintenance toggles.

## Phase 3: Role-Based Verification (SUPER_OPERATOR)
- [ ] **Auth**: Login to `test_super_op`.
- [ ] **Blocking Check**: Access `/ultimate-console`. Confirm it redirects to `/`.
- [ ] **Action Group: Create User Checks**
    - [ ] Navigate to `/create-user`.
    - [ ] Verify `ULTIMATE` choice is NOT in the role dropdown.
    - [ ] Verify `SUPER_OPERATOR` and others are visible.
- [ ] **Logistics**: Access `/shipment-list`. Verify if they can see shipments.

## Phase 4: Role-Based Verification (OPERATOR)
- [ ] **Auth**: Login to `test_op`.
- [ ] **Action Group: Create User Checks**
    - [ ] Navigate to `/create-user`.
    - [ ] Verify only `COORDINATOR`, `SUPPLIER`, `STORE_OWNER`, `RIDER`, `POS_TERMINAL` are present (as per `UserTypeService`).
- [ ] **Action Group: Reports Checks**
    - [ ] Navigate to `/pos-history`. Verify access per store context.

## Phase 5: Role-Based Verification (RIDER)
- [ ] **Auth**: Login to `test_rider`.
- [ ] **Action: ViewShipments**: Navigate to `/shipment-list`.
    - [ ] Verify view status (per `UserPermissions.php` roles array).
    - [ ] Document result: Allowed or Restricted?

## Phase 6: Role-Based Verification (POS_TERMINAL)
- [ ] **Auth**: Login to `test_pos`.
- [ ] **UI Focus Check**: Verify if "Pos Main" is the default or prioritized interface.
- [ ] **Blocking Check**: Attempt access to `/user-list`. Verify if they are blocked.

## Phase 7: Final Matrix Audit (All 103 Actions)
- [ ] Match each action in `UserActions.php` with actual behavior in the UI.
- [ ] Document all observed permission gaps (e.g. `UpdateShipmentStatus` not assigned to `RIDER`).
- [ ] Verify for `PUBLIC` access (unauthenticated) that only marketplace and pos-start are reachable.

## Phase 8: Dictionary Sync
- [ ] Update `ai-docs/dictionary.md` with any findings or new established RBAC patterns.
- [ ] Commit and push the dictionary update.
