Rôles & Permissions
👥 Système de permissions Drupal
Section intitulée « 👥 Système de permissions Drupal »Drupal utilise un système de rôles et permissions très granulaire :
- Utilisateur : Un compte sur le site
- Rôle : Un ensemble de permissions
- Permission : Un droit d’effectuer une action
Utilisateur "Marie"├── Rôle: Authenticated user│ ├── Permission: View published content│ ├── Permission: Post comments│ └── Permission: Use search└── Rôle: Editor ├── Permission: Create Product content ├── Permission: Edit own Product content └── Permission: Delete own Product content🎭 Rôles par défaut
Section intitulée « 🎭 Rôles par défaut »| Rôle | Description | Assignation |
|---|---|---|
| Anonymous user | Visiteur non connecté | Automatique |
| Authenticated user | Utilisateur connecté | Automatique |
| Administrator | Accès complet | Manuel |
🔧 Créer des rôles personnalisés
Section intitulée « 🔧 Créer des rôles personnalisés »Rôle “Éditeur” (Editor)
Section intitulée « Rôle “Éditeur” (Editor) »-
Allez dans People → Roles
-
Ou
/admin/people/roles -
Cliquez sur Add role
-
Configurez :
| Champ | Valeur |
|---|---|
| Role name | Éditeur |
| Machine name | editor |
- Save
Rôle “Gestionnaire boutique” (Shop Manager)
Section intitulée « Rôle “Gestionnaire boutique” (Shop Manager) »| Champ | Valeur |
|---|---|
| Role name | Gestionnaire boutique |
| Machine name | shop_manager |
Rôle “Modérateur” (Moderator)
Section intitulée « Rôle “Modérateur” (Moderator) »| Champ | Valeur |
|---|---|
| Role name | Modérateur |
| Machine name | moderator |
🔐 Configurer les permissions
Section intitulée « 🔐 Configurer les permissions »Accéder aux permissions
Section intitulée « Accéder aux permissions »- People → Permissions
- Ou
/admin/people/permissions
L’interface affiche une matrice :
- Colonnes : Rôles
- Lignes : Permissions
Permissions par rôle pour TailStore
Section intitulée « Permissions par rôle pour TailStore »| Permission | Accordée |
|---|---|
| View published content | ☑ |
| Search content | ☑ |
| View media | ☑ |
| Access site-wide contact form | ☑ |
Hérite de Anonymous, plus :
| Permission | Accordée |
|---|---|
| View user profiles | ☑ |
| Use the toolbar | ☐ |
| Post comments | ☑ |
| Edit own comments | ☑ |
Hérite de Authenticated, plus :
| Permission | Accordée |
|---|---|
| Content | |
| Create Blog Article content | ☑ |
| Edit own Blog Article content | ☑ |
| Delete own Blog Article content | ☑ |
| Create Page content | ☑ |
| Edit any Page content | ☑ |
| Media | |
| Create media | ☑ |
| Edit own media | ☑ |
| Delete own media | ☑ |
| Toolbar | |
| Use the toolbar | ☑ |
Hérite de Authenticated, plus :
| Permission | Accordée |
|---|---|
| Products | |
| Create Product content | ☑ |
| Edit any Product content | ☑ |
| Delete any Product content | ☑ |
| Taxonomy | |
| Create terms in Catégorie Produit | ☑ |
| Edit terms in Catégorie Produit | ☑ |
| Create terms in Marque | ☑ |
| Media | |
| Create media | ☑ |
| Edit any media | ☑ |
| Toolbar | |
| Use the toolbar | ☑ |
| Permission | Accordée |
|---|---|
| Administer site configuration | ☑ |
| Administer content types | ☑ |
| Administer users | ☑ |
| Administer permissions | ☑ |
| Toutes les permissions | ☑ |
👤 Assigner des rôles aux utilisateurs
Section intitulée « 👤 Assigner des rôles aux utilisateurs »Via l’interface
Section intitulée « Via l’interface »-
People → Cliquez sur un utilisateur
-
Roles : Cochez les rôles souhaités
-
Save
Lors de la création d’un utilisateur
Section intitulée « Lors de la création d’un utilisateur »- People → Add user
- Remplissez les informations
- Status : Active
- Roles : Cochez les rôles appropriés
- Create new account
Via Drush
Section intitulée « Via Drush »# Ajouter un rôledrush user:role:add editor marie
# Supprimer un rôledrush user:role:remove editor marie
# Lister les rôles d'un utilisateurdrush user:information marie🛡️ Permissions granulaires par type de contenu
Section intitulée « 🛡️ Permissions granulaires par type de contenu »Content permissions
Section intitulée « Content permissions »Chaque type de contenu génère des permissions spécifiques :
| Permission | Description |
|---|---|
| Create [type] content | Créer du contenu de ce type |
| Edit own [type] content | Modifier son propre contenu |
| Edit any [type] content | Modifier tout contenu de ce type |
| Delete own [type] content | Supprimer son propre contenu |
| Delete any [type] content | Supprimer tout contenu |
| Revert [type] revisions | Restaurer une révision |
| View [type] revisions | Voir l’historique |
Exemple pour Product
Section intitulée « Exemple pour Product »| Rôle | Create | Edit own | Edit any | Delete own | Delete any |
|---|---|---|---|---|---|
| Editor | ☐ | ☐ | ☐ | ☐ | ☐ |
| Shop Manager | ☑ | ☑ | ☑ | ☑ | ☑ |
| Administrator | ☑ | ☑ | ☑ | ☑ | ☑ |
🔒 Accès aux contenus non publiés
Section intitulée « 🔒 Accès aux contenus non publiés »Par défaut, seuls les auteurs et admins voient les contenus non publiés.
Permission spécifique
Section intitulée « Permission spécifique »Installez le module View Unpublished :
composer require drupal/view_unpublisheddrush en view_unpublished -yNouvelle permission : View unpublished [type] content
🧩 Permissions des modules
Section intitulée « 🧩 Permissions des modules »Chaque module peut ajouter ses propres permissions.
| Permission | Description |
|---|---|
| Administer views | Créer/modifier les vues |
| Access the views administration pages | Voir la liste des vues |
| Bypass views access | Ignorer les restrictions d’accès |
Taxonomy
Section intitulée « Taxonomy »| Permission | Description |
|---|---|
| Administer vocabularies | Gérer les vocabulaires |
| Create terms in [vocabulary] | Créer des termes |
| Edit terms in [vocabulary] | Modifier des termes |
| Delete terms in [vocabulary] | Supprimer des termes |
| Permission | Description |
|---|---|
| Administer blocks | Gérer le placement des blocs |
| Administer block content | Gérer les blocs personnalisés |
| Administer block types | Gérer les types de blocs |
📊 Matrice récapitulative TailStore
Section intitulée « 📊 Matrice récapitulative TailStore »| Action | Anon | Auth | Editor | Shop Mgr | Admin |
|---|---|---|---|---|---|
| Voir produits | ☑ | ☑ | ☑ | ☑ | ☑ |
| Créer produit | ☐ | ☐ | ☐ | ☑ | ☑ |
| Modifier produit | ☐ | ☐ | ☐ | ☑ | ☑ |
| Voir blog | ☑ | ☑ | ☑ | ☑ | ☑ |
| Créer article | ☐ | ☐ | ☑ | ☐ | ☑ |
| Modifier article | ☐ | ☐ | ☑ | ☐ | ☑ |
| Créer média | ☐ | ☐ | ☑ | ☑ | ☑ |
| Gérer taxonomies | ☐ | ☐ | ☐ | ☑ | ☑ |
| Gérer blocs | ☐ | ☐ | ☐ | ☐ | ☑ |
| Toolbar | ☐ | ☐ | ☑ | ☑ | ☑ |
| Admin config | ☐ | ☐ | ☐ | ☐ | ☑ |
🔧 Permissions programmatiques
Section intitulée « 🔧 Permissions programmatiques »Vérifier une permission en PHP
Section intitulée « Vérifier une permission en PHP »// Dans un contrôleurif ($this->currentUser()->hasPermission('create product content')) { // L'utilisateur peut créer des produits}
// Service injection$current_user = \Drupal::currentUser();$can_edit = $current_user->hasPermission('edit any product content');Vérifier un rôle
Section intitulée « Vérifier un rôle »$user = \Drupal::currentUser();if (in_array('shop_manager', $user->getRoles())) { // L'utilisateur est gestionnaire boutique}Dans Twig
Section intitulée « Dans Twig »{% if logged_in %} <p>Bienvenue !</p>{% endif %}
{% if is_admin %} <a href="/admin">Administration</a>{% endif %}💾 Export
Section intitulée « 💾 Export »# Exporter les rôles et permissionsdrush cex -y
# Fichiers générésls config/sync/user.role.*.ymlExemple user.role.editor.yml :
langcode: frstatus: truedependencies: { }id: editorlabel: Éditeurweight: 3is_admin: falsepermissions: - 'create blog_article content' - 'create media' - 'create page content' - 'delete own blog_article content' - 'delete own media' - 'edit any page content' - 'edit own blog_article content' - 'edit own media' - 'use the toolbar'✅ Checklist
Section intitulée « ✅ Checklist »- Rôle “Éditeur” créé
- Rôle “Gestionnaire boutique” créé
- Permissions configurées pour chaque rôle
- Utilisateurs de test créés avec rôles
- Accès au toolbar vérifié
- Configuration exportée
🎯 Exercices
Section intitulée « 🎯 Exercices »Exercice 1 : Tester les accès
Section intitulée « Exercice 1 : Tester les accès »- Créez 3 utilisateurs :
editeur@test.com,boutique@test.com,client@test.com - Assignez les rôles appropriés
- Connectez-vous avec chaque compte et vérifiez les accès
Exercice 2 : Workflow de publication
Section intitulée « Exercice 2 : Workflow de publication »- Installez le module Content Moderation
- Créez un workflow : Draft → Review → Published
- Configurez les permissions : qui peut publier ?
🔜 Prochaine étape
Section intitulée « 🔜 Prochaine étape »L’Étape 5 est terminée ! 🎉 Passez à l’Étape 6 - Theming pour créer le thème personnalisé TailStore.