Users
User accounts, profiles, and authentication
26 stories across 3 personas | Coverage: 26/26 (100%)
Overview
Users
Users are the people who participate in the Restarters community. The platform supports four roles: Admin (full oversight), Host (manages groups and events), Restarter (attends events and logs repairs), and NetworkCoordinator (regional oversight). Users authenticate via a single sign-on system that spans Restarters, Discourse (Talk), and MediaWiki (Wiki).
What Guests can do
Guests can view the registration page, register a new account, log in, request password recovery, and reset their password.
What Restarters can do
Restarters manage their own profile -- updating personal information, changing their password, uploading a profile picture, setting their preferred language, and managing notification preferences and repair skills. They can view other users' profiles, view their notifications, complete onboarding, and delete their own account. They can also log out and retrieve their profile via the API.
What Admins can do
Admins have full user management capabilities. They can view and search all users, create new accounts, edit any user's details (including role, groups, and permissions), change Repair Directory roles, and delete user accounts. Admin changes are tracked for Zapier integration.
Account management
| Persona | Story | Method | Tests |
|---|---|---|---|
| Restarter | As a Restarter, I can delete my own account | UserController::postSoftDeleteUser | ✅ Covered |
Admin user management
| Persona | Story | Method | Tests |
|---|---|---|---|
| Admin | As an Admin, I can view and search all users on the platform | UserController::all | ✅ Covered |
| Admin | As an Admin, I can create a new user account | UserController::create | ✅ Covered |
| Admin | As an Admin, I can edit any user's account details | UserController::edit | ✅ Covered |
| Admin | As an Admin, I can edit a user's role, groups, and permissions | UserController::postAdminEdit | ✅ Covered |
| Admin | As an Admin, I can change a user's Repair Directory role | UserController::postProfileRepairDirectory | ✅ Covered |
| Admin | As an Admin, I can delete a user's account | UserController::postSoftDeleteUser | ✅ Covered |
| Admin | As an Admin, I can filter and search the user list | UserController::search | ✅ Covered |
Authentication
| Persona | Story | Method | Tests |
|---|---|---|---|
| Guest | As a Guest, I can log in to the platform | LoginController::login | ✅ Covered |
| Guest | As a Guest, I can view the login page | LoginController::showLoginForm | ✅ Covered |
| Guest | As a Guest, I can request a password recovery email | UserController::recover | ✅ Covered |
| Guest | As a Guest, I can reset my password using a recovery code | UserController::reset | ✅ Covered |
| Restarter | As a Restarter, I can log out of my account | UserController::logout | ✅ Covered |
Data exports
| Persona | Story | Method | Tests |
|---|---|---|---|
| Admin | As an Admin, I can list user audit changes for Zapier integration | UserController::changes | ✅ Covered |
Language preferences
| Persona | Story | Method | Tests |
|---|---|---|---|
| Restarter | As a Restarter, I can change my preferred language | UserController::storeLanguage | ✅ Covered |
Notifications
| Persona | Story | Method | Tests |
|---|---|---|---|
| Restarter | As a Restarter, I can view my notifications | UserController::getNotifications | ✅ Covered |
Profile management
| Persona | Story | Method | Tests |
|---|---|---|---|
| Restarter | As a Restarter, I can access the form to edit my profile | UserController::getProfileEdit | ✅ Covered |
| Restarter | As a Restarter, I can view my profile or another user's profile | UserController::index | ✅ Covered |
| Restarter | As a Restarter, I can update my profile information | UserController::postProfileInfoEdit | ✅ Covered |
| Restarter | As a Restarter, I can change my password | UserController::postProfilePasswordEdit | ✅ Covered |
| Restarter | As a Restarter, I can upload a new profile picture | UserController::postProfilePictureEdit | ✅ Covered |
| Restarter | As a Restarter, I can update my notification preferences | UserController::postProfilePreferencesEdit | ✅ Covered |
| Restarter | As a Restarter, I can update my repair skills | UserController::postProfileTagsEdit | ✅ Covered |
Registration & onboarding
| Persona | Story | Method | Tests |
|---|---|---|---|
| Guest | As a Guest, I can view the registration page | UserController::getRegister | ✅ Covered |
| Guest | As a Guest, I can register a new account | UserController::postRegister | ✅ Covered |
| Restarter | As a Restarter, I can complete my onboarding process | UserController::getOnboardingComplete | ✅ Covered |