# Gebruikers Gebruikers worden opgeslagen in `admin/config/admin.json` (file-based, geen database). Elke gebruiker heeft een **rol** die bepaalt welke admin routes en sidebar items zichtbaar zijn. ## Rollen CodePress kent vier rollen, gedefinieerd in `AdminAuth::ROLE_PERMISSIONS`: | Rol | Label | Permissies | |-----|-------|-----------| | `admin` | Admin | Alles (`*`) | | `content-manager` | Content Beheerder | Content beheer, handleiding | | `bi-manager` | BI Beheerder | Statistieken, logs, handleiding | | `site-admin` | Site Admin | Thema, plugins, statistieken, logs, update, handleiding | Rollen worden getoond met hun label via `AdminAuth::ROLE_LABELS`. ## Gebruikerslijst (`/admin/users`) De gebruikerslijst toont alle gebruikers met hun gebruikersnaam, rol, login e-mail en aanmaakdatum. ### Zoeken en filteren - **Zoekveld**: zoek op gebruikersnaam, e-mail of auteur naam - **Rol filter**: filter op een specifieke rol via de dropdown - Klik op **Filteren** om de resultaten toe te passen ### Nieuwe gebruiker aanmaken 1. Klik op **Nieuwe gebruiker** (rechtsboven in de lijst) 2. Vul gebruikersnaam, wachtwoord (minimaal 8 tekens), e-mail, auteur naam en auteur e-mail in 3. Selecteer een rol 4. Klik **Gebruiker toevoegen** 5. Je wordt automatisch doorgestuurd naar de profiel pagina van de nieuwe gebruiker ## Profiel bewerken (`/admin/users-edit?user=`) Klik op een gebruiker in de lijst om het profiel te bewerken. De profiel pagina bevat drie secties: ### Profiel gegevens - Login e-mail, auteur naam en auteur e-mail kunnen worden gewijzigd - De gebruikersnaam kan niet worden gewijzigd ### Wachtwoord wijzigen - Vul een nieuw wachtwoord in (minimaal 8 tekens) - Bevestig het wachtwoord - Het wachtwoord wordt opgeslagen als bcrypt hash ### Rol wijzigen - Toont de huidige rol met een gekleurde badge - Selecteer een nieuwe rol uit de dropdown - De wijziging beïnvloedt direct de zichtbare admin routes en sidebar items ### Gebruiker verwijderen (Gevarenzone) - Alleen zichtbaar voor andere gebruikers (niet voor je eigen account) - Bevestiging via JavaScript dialog - Na verwijderen keer je terug naar de gebruikerslijst ## Admin wachtwoord reset via CLI Als de admin is uitgesloten (bijv. door brute-force lockout of vergeten wachtwoord), kan het wachtwoord via de CLI worden gereset: ```bash # Reset met een specifiek wachtwoord php cli/reset-admin-password.php admin NieuwWachtwoord123 # Reset met een automatisch gegenereerd wachtwoord php cli/reset-admin-password.php admin ``` Het commando: - Wijzigt het wachtwoord (als bcrypt hash) - Wist de brute-force lockout voor de gebruiker - Toont het nieuwe wachtwoord in de terminal ## Toegangscontrole - Route access wordt gecontroleerd in `public/admin.php` via `AdminAuth::hasPermission()` - Onbevoegde routes geven een **403 error** - Sidebar items worden conditioneel getoond via de `has_permission()` Twig function in `admin.twig`