9.4. Création de pages pour un compte premium.
Dans cette leçon, nous allons étendre les fonctionnalités de notre module et créer un contenu qui sera accessible uniquement aux utilisateurs enregistrés ou aux utilisateurs ayant un rôle spécifique.
Les exemples de code sont disponibles sur github :
https://github.com/levmyshkin/drupalbook8
Commençons par ajouter un nouveau fichier YML directement dans le dossier de notre module drupalbook :
access premium pages:
title: 'Accès aux pages Premium'
description: 'Une permission personnalisée pour vos pages.'
restrict access: TRUE
Ensuite, allez sur la page des droits d’accès et attribuez l’accès au contenu Premium aux rôles nécessaires, je vais le faire pour les utilisateurs enregistrés :
/admin/people/permissions
Maintenant, dans drupalbook.routing.yml, créez une nouvelle route dans laquelle nous indiquons notre nouveau droit et une nouvelle méthode pour afficher le contenu :
drupalbook.private_content:
path: '/private-page'
defaults:
_controller: '\Drupal\drupalbook\Controller\FirstPageController::privateContent'
_title: 'Contenu privé'
requirements:
_permission: 'access premium pages'
Après avoir ajouté la nouvelle route, vous devez vider le cache.
Nous devons aussi ajouter la méthode privateContent()
à notre classe FirstPageController :
/**
* Retourne une page privée.
*
* @return array
* Un tableau simple rendable.
*/
public function privateContent() {
$element = [
'#markup' => 'Contenu privé',
];
return $element;
}
Vous pouvez maintenant vider le cache et vérifier que notre page n’est pas accessible aux utilisateurs non enregistrés.
Les exemples de code sont disponibles sur github :