9.4. Erstellen von Seiten für ein Premium-Konto.
In dieser Lektion erweitern wir die Möglichkeiten unseres Moduls und erstellen Inhalte, die nur für registrierte Benutzer oder Benutzer mit einer bestimmten Rolle zugänglich sind.
Codebeispiele sind auf GitHub verfügbar:
https://github.com/levmyshkin/drupalbook8
Beginnen wir damit, eine neue YML-Datei direkt im Modulordner drupalbook.permissions.yml hinzuzufügen:
access premium pages:
title: 'Zugriff auf Premium-Seiten'
description: 'Eine benutzerdefinierte Berechtigung für Ihre Seiten.'
restrict access: TRUE
Gehen Sie nun zur Seite für Zugriffsrechte und vergeben Sie den Zugriff auf Premium-Inhalte für die notwendigen Rollen. Ich werde dies für registrierte Benutzer tun:
/admin/people/permissions
Erstellen Sie jetzt in drupalbook.routing.yml eine neue Route, in der Sie unsere neuen Rechte und eine neue Methode zur Inhaltsanzeige angeben:
drupalbook.private_content:
path: '/private-page'
defaults:
_controller: '\Drupal\drupalbook\Controller\FirstPageController::privateContent'
_title: 'Privater Inhalt'
requirements:
_permission: 'access premium pages'
Nach dem Hinzufügen einer neuen Route müssen Sie den Cache leeren.
Wir müssen auch die Methode privateContent() zu unserer FirstPageController-Klasse hinzufügen:
/**
* Gibt eine private Seite zurück.
*
* @return array
* Ein einfaches renderbares Array.
*/
public function privateContent() {
$element = array(
'#markup' => 'Privater Inhalt',
);
return $element;
}
Nun können Sie den Cache leeren und überprüfen, dass unsere Seite für nicht registrierte Benutzer nicht zugänglich ist.
Codebeispiele sind auf GitHub verfügbar: