All checks were successful
CI - Build Tonehaus Docker image / tonehaus-ci-build (push) Successful in 1m57s
1.9 KiB
1.9 KiB
Admin & Settings
Access control
- All
/admin/*pages require authentication; unauthorized visitors get redirected through/login, which opens the auth modal automatically. ROLE_MODERATORgrants dashboard + user list access.ROLE_ADMINadds settings access and moderator promotion/demotion abilities.
Site dashboard (ROLE_MODERATOR)
- URL:
/admin/dashboard - Shows total counts plus the most recent reviews and albums so staff can moderate activity quickly.
User management (ROLE_MODERATOR)
- URL:
/admin/users - Table columns:
- Name/email/roles + album/review counts (queried via aggregates).
- Action buttons always render; disabled buttons show tooltips describing why (e.g., "Administrators cannot be deleted").
- Moderators:
- Create new accounts via the inline form without logging themselves out.
- Delete standard users or other moderators (except themselves).
- Admins:
- Toggle moderator role (Promote/Demote) for non-admin accounts.
- Cannot delete or demote other admins—admin privileges supersede moderator status.
Site settings (ROLE_ADMIN)
- URL:
/admin/settings - Form persists Spotify Client ID/Secret in the DB (no restart needed).
- Toggle “Allow self-service registration” to pause public sign-ups while keeping
/admin/userscreation available to staff. - The setting syncs with the
APP_ALLOW_REGISTRATIONenvironment variable each time Symfony boots (change the env value and restart to enforce). UI changes persist while the process runs. - CSRF + role guards prevent unauthorized updates.
User management
- Promote an admin:
docker compose exec php php bin/console app:promote-admin user@example.com
- Promote a moderator:
docker compose exec php php bin/console app:promote-moderator user@example.com
Appearance
/settingsprovides a dark/light mode toggle.- Preference saved in a cookie; applied via
data-bs-theme.