Skip to content

Rôles & Permissions

This content is not available in your language yet.

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ôleDescriptionAssignation
Anonymous userVisiteur non connectéAutomatique
Authenticated userUtilisateur connectéAutomatique
AdministratorAccès completManuel
  1. Allez dans PeopleRoles

  2. Ou /admin/people/roles

  3. Cliquez sur Add role

  4. Configurez :

ChampValeur
Role nameÉditeur
Machine nameeditor
  1. Save
ChampValeur
Role nameGestionnaire boutique
Machine nameshop_manager
ChampValeur
Role nameModérateur
Machine namemoderator
  1. PeoplePermissions
  2. Ou /admin/people/permissions

L’interface affiche une matrice :

  • Colonnes : Rôles
  • Lignes : Permissions
PermissionAccordée
View published content
Search content
View media
Access site-wide contact form
  1. People → Cliquez sur un utilisateur

  2. Roles : Cochez les rôles souhaités

  3. Save

  1. PeopleAdd user
  2. Remplissez les informations
  3. Status : Active
  4. Roles : Cochez les rôles appropriés
  5. Create new account
Fenêtre de terminal
# Ajouter un rôle
drush user:role:add editor marie
# Supprimer un rôle
drush user:role:remove editor marie
# Lister les rôles d'un utilisateur
drush user:information marie

🛡️ Permissions granulaires par type de contenu

Section intitulée « 🛡️ Permissions granulaires par type de contenu »

Chaque type de contenu génère des permissions spécifiques :

PermissionDescription
Create [type] contentCréer du contenu de ce type
Edit own [type] contentModifier son propre contenu
Edit any [type] contentModifier tout contenu de ce type
Delete own [type] contentSupprimer son propre contenu
Delete any [type] contentSupprimer tout contenu
Revert [type] revisionsRestaurer une révision
View [type] revisionsVoir l’historique
RôleCreateEdit ownEdit anyDelete ownDelete any
Editor
Shop Manager
Administrator

Par défaut, seuls les auteurs et admins voient les contenus non publiés.

Installez le module View Unpublished :

Fenêtre de terminal
composer require drupal/view_unpublished
drush en view_unpublished -y

Nouvelle permission : View unpublished [type] content

Chaque module peut ajouter ses propres permissions.

PermissionDescription
Administer viewsCréer/modifier les vues
Access the views administration pagesVoir la liste des vues
Bypass views accessIgnorer les restrictions d’accès
PermissionDescription
Administer vocabulariesGé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
PermissionDescription
Administer blocksGérer le placement des blocs
Administer block contentGérer les blocs personnalisés
Administer block typesGérer les types de blocs
ActionAnonAuthEditorShop MgrAdmin
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
// Dans un contrôleur
if ($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');
$user = \Drupal::currentUser();
if (in_array('shop_manager', $user->getRoles())) {
// L'utilisateur est gestionnaire boutique
}
{% if logged_in %}
<p>Bienvenue !</p>
{% endif %}
{% if is_admin %}
<a href="/admin">Administration</a>
{% endif %}
Fenêtre de terminal
# Exporter les rôles et permissions
drush cex -y
# Fichiers générés
ls config/sync/user.role.*.yml

Exemple user.role.editor.yml :

langcode: fr
status: true
dependencies: { }
id: editor
label: Éditeur
weight: 3
is_admin: false
permissions:
- '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'
  • 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
  1. Créez 3 utilisateurs : editeur@test.com, boutique@test.com, client@test.com
  2. Assignez les rôles appropriés
  3. Connectez-vous avec chaque compte et vérifiez les accès
  1. Installez le module Content Moderation
  2. Créez un workflow : Draft → Review → Published
  3. Configurez les permissions : qui peut publier ?

L’Étape 5 est terminée ! 🎉 Passez à l’Étape 6 - Theming pour créer le thème personnalisé TailStore.