Skip to content

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

PersonaStoryMethodTests
RestarterAs a Restarter, I can delete my own accountUserController::postSoftDeleteUser✅ Covered

Admin user management

PersonaStoryMethodTests
AdminAs an Admin, I can view and search all users on the platformUserController::all✅ Covered
AdminAs an Admin, I can create a new user accountUserController::create✅ Covered
AdminAs an Admin, I can edit any user's account detailsUserController::edit✅ Covered
AdminAs an Admin, I can edit a user's role, groups, and permissionsUserController::postAdminEdit✅ Covered
AdminAs an Admin, I can change a user's Repair Directory roleUserController::postProfileRepairDirectory✅ Covered
AdminAs an Admin, I can delete a user's accountUserController::postSoftDeleteUser✅ Covered
AdminAs an Admin, I can filter and search the user listUserController::search✅ Covered

Authentication

PersonaStoryMethodTests
GuestAs a Guest, I can log in to the platformLoginController::login✅ Covered
GuestAs a Guest, I can view the login pageLoginController::showLoginForm✅ Covered
GuestAs a Guest, I can request a password recovery emailUserController::recover✅ Covered
GuestAs a Guest, I can reset my password using a recovery codeUserController::reset✅ Covered
RestarterAs a Restarter, I can log out of my accountUserController::logout✅ Covered

Data exports

PersonaStoryMethodTests
AdminAs an Admin, I can list user audit changes for Zapier integrationUserController::changes✅ Covered

Language preferences

PersonaStoryMethodTests
RestarterAs a Restarter, I can change my preferred languageUserController::storeLanguage✅ Covered

Notifications

PersonaStoryMethodTests
RestarterAs a Restarter, I can view my notificationsUserController::getNotifications✅ Covered

Profile management

PersonaStoryMethodTests
RestarterAs a Restarter, I can access the form to edit my profileUserController::getProfileEdit✅ Covered
RestarterAs a Restarter, I can view my profile or another user's profileUserController::index✅ Covered
RestarterAs a Restarter, I can update my profile informationUserController::postProfileInfoEdit✅ Covered
RestarterAs a Restarter, I can change my passwordUserController::postProfilePasswordEdit✅ Covered
RestarterAs a Restarter, I can upload a new profile pictureUserController::postProfilePictureEdit✅ Covered
RestarterAs a Restarter, I can update my notification preferencesUserController::postProfilePreferencesEdit✅ Covered
RestarterAs a Restarter, I can update my repair skillsUserController::postProfileTagsEdit✅ Covered

Registration & onboarding

PersonaStoryMethodTests
GuestAs a Guest, I can view the registration pageUserController::getRegister✅ Covered
GuestAs a Guest, I can register a new accountUserController::postRegister✅ Covered
RestarterAs a Restarter, I can complete my onboarding processUserController::getOnboardingComplete✅ Covered

Source Files