Help mij met het opzetten van geavanceerde gebruikersrollen en permissies in Statamic
description
Met deze prompt kun je een effectief en veilig gebruikersrollen- en permissiesysteem in Statamic opzetten dat nauwkeurige controle biedt over wie welke content en functies kan benaderen. Dit helpt bij het voorkomen van ongeautoriseerde toegang en maakt beheer op grote schaal eenvoudiger, wat beter is dan basisinstellingen of generieke adviezen.
prompt
Help mij bij het ontwerpen en configureren van een geavanceerd gebruikersrollen- en permissiesysteem binnen mijn Statamic website. Mijn huidige gebruikersstructuur is: <beschri ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk, ik help je graag bij het opzetten van een geavanceerd gebruikersrollen- en permissiesysteem in je Statamic 3.3.15 website. Hieronder vind je een stapsgewijze aanpak om jouw vereisten te realiseren, waarbij redacteuren alleen blogposts kunnen bewerken maar niet publiceren.
### 1. Rollen en permissies definiëren
Je hebt momenteel twee groepen: beheerders en contentredacteuren. We gaan de redacteuren verder onderverdelen in permissions.
### 2. Gebruikersrollen aanmaken
Gebruik de ingebouwde gebruikers- en rollenfunctionaliteit van Statamic:
- Ga naar **Control Panel > Users > Roles**.
- Maak een nieuwe rol aan, bijvoorbeeld: **Redacteur Blog**.
### 3. Permissies instellen voor de rol
Voor de rol **Redacteur Blog**:
- Geef permissies voor het bewerken van blogposts:
- **Edit entries** voor de collection **blog**.
- Geef geen permissies voor publiceren:
- Laat de permissie **Publish entries** uit.
- Zorg dat er geen permissies zijn voor andere collections of pagina's die je niet wilt dat ze bewerken.
### 4. Restricties voor publiceren
Omdat je redacteuren niet mogen publiceren, moet je dat expliciet uitschakelen. Dit doe je door de permissie **Publish entries** niet toe te kennen.
### 5. Specifieke beperkingen instellen (bijvoorbeeld alleen bewerken)
In Statamic 3.3.15 kunnen permissies verder worden verfijnd via de configuratiebestanden of via de YAML-rollen.
- Controleer of je de permissies correct hebt ingesteld in **`/config/users.php`** of via het Control Panel.
- Als je meer granulariteit nodig hebt, kun je gebruik maken van custom policies via Laravel's gate systeem, maar dit is geavanceerder.
### 6. Gebruikers toewijzen aan rollen
- Ga naar **Control Panel > Users**.
- Bewerk de gebruikers die je als redacteur wilt instellen.
- Wijs hen de rol **Redacteur Blog** toe.
### 7. Certificering en testen
- Log in als een redacteur en controleer of:
- Ze alleen blogposts kunnen bewerken.
- Ze niet kunnen publiceren.
- Ze geen toegang hebben tot andere collections of pagina's die ze niet mogen bewerken.
### 8. Extra tips
- Overweeg het gebruik van **user groups** voor verdere organisatie.
- Gebruik eventueel **custom permissions** via statamic/addons als de standaard permissies niet voldoende zijn.
---
**Samenvatting:**
- Maak een nieuwe rol **Redacteur Blog**.
- Geef permissies: **Edit entries** voor de blog collection.
- Laat permissies voor **Publish entries** weg.
- Toewijs die rol aan specifieke gebruikers.
- Test de functionaliteit grondig.
Indien je verdere maatwerk nodig hebt of hulp bij het aanpassen van configuratiebestanden, laat het me gerust weten!
provider: deepseek
model: deepseek-chat
Ik help je graag met het ontwerpen en configureren van een geavanceerd rollensysteem in Statamic 3.3.15. Hier is een stapsgewijze oplossing:
## 1. Roldefinities in `config/statamic/users.php`
```php
'roles' => [
'admin' => [
'name' => 'Beheerder',
'permissions' => 'super', // Volledige toegang
],
'redacteur' => [
'name' => 'Redacteur',
'permissions' => [
'access cp',
'view updates',
'view blog entries',
'edit blog entries',
'create blog entries',
'delete blog entries',
],
],
],
```
## 2. Gebruikersgroepen configureren
```php
'groups' => [
'content_team' => [
'name' => 'Content Team',
'roles' => ['redacteur'],
],
'administrators' => [
'name' => 'Administrators',
'roles' => ['admin'],
],
],
```
## 3. Publicatiebeperking voor blogposts
Maak een custom permission in `app/Providers/AppServiceProvider.php`:
```php
use Statamic\Facades\Permission;
public function boot()
{
Permission::register('publish blog entries')
->label('Blogposts publiceren');
}
```
## 4. Collection-specifieke permissions
Voeg in `content/collections/blog.yaml` toe:
```yaml
permissions:
view: ['admin', 'redacteur']
edit: ['admin', 'redacteur']
create: ['admin', 'redacteur']
delete: ['admin', 'redacteur']
publish: ['admin'] // Alleen beheerders kunnen publiceren
```
## 5. Workflow configuratie voor reviewproces
Maak een custom status in `config/statamic/forms.php`:
```php
'redactie_workflow' => [
'states' => [
'concept' => ['label' => 'Concept', 'color' => 'grey'],
'gereed_voor_review' => ['label' => 'Gereed voor review', 'color' => 'blue'],
'gepubliceerd' => ['label' => 'Gepubliceerd', 'color' => 'green'],
],
'transitions' => [
'indienen_voor_review' => [
'from' => ['concept'],
'to' => 'gereed_voor_review',
'permissions' => ['redacteur']
],
'publiceren' => [
'from' => ['gereed_voor_review'],
'to' => 'gepubliceerd',
'permissions' => ['admin']
],
],
],
```
## 6. CP Interface aanpassingen
Maak een custom dashboard voor redacteuren in `resources/views/vendor/statamic/cp/`:
```blade
@if(user()->hasRole('redacteur'))
@include('cp.custom.redacteur-dashboard')
@else
@include('cp.default-dashboard')
@endif
```
## 7. Controleer de configuratie
Run deze commands na configuratie:
```bash
php please clear:cache
php please update:addons
```
## 8. Test de configuratie
- Log in als redacteur en controleer of:
- Alleen blogposts bewerkbaar zijn
- Publicatie-knop ontbreekt
- Andere collections niet zichtbaar zijn
Dit systeem zorgt voor de gewenste scheiding: redacteurs kunnen blogposts bewerken maar niet publiceren, terwijl beheerders volledige controle behouden.