Nieuwe features: - Admin gebruikerslijst met zoeken/filter op gebruikersnaam en rol - Profiel bewerken pagina met wachtwoord wijzigen en rol wijzigen - Nieuwe gebruiker aanmaken via aparte pagina - CLI commando cli/reset-admin-password.php voor admin wachtword reset + lockout reset Architectuur: - /admin/users: lijst met zoekveld, rol filter, bewerk/verwijder acties - /admin/users-edit?user=<naam>: profiel, wachtwoord, rol, verwijderen - /admin/users-new: nieuwe gebruiker aanmaken - AdminAuth::clearLockout() public methode voor CLI gebruik Documentatie: - guide/nl/en/admin-beheerder/gebruikers.md herschreven - 15 nieuwe admin vertaalkeys in NL/EN/DE - Release notes: docs/release-notes/v2.6.1c.md Tests: - Pentest: 30/30 geslaagd, 0 vulnerabilities - WCAG 2.1 AA: 25/25 geslaagd, 100% compliance
80 lines
2.9 KiB
Markdown
80 lines
2.9 KiB
Markdown
# 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=<naam>`)
|
|
|
|
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` |