9.4. Creación de páginas para una cuenta premium.
En esta lección, ampliaremos las capacidades de nuestro módulo y crearemos contenido que estará disponible solo para usuarios registrados o usuarios con un rol específico.
Ejemplos de código disponibles en GitHub:
https://github.com/levmyshkin/drupalbook8
Comencemos agregando un nuevo archivo YML directamente en la carpeta del módulo drupalbook: drupalbook.permissions.yml
access premium pages:
title: 'Acceder a páginas Premium'
description: 'Un permiso personalizado para tus páginas.'
restrict access: TRUE
Ahora ve a la página de permisos y asigna el acceso al contenido Premium para los roles necesarios. Yo lo haré para usuarios registrados:
/admin/people/permissions
Ahora en el archivo drupalbook.routing.yml creamos una nueva ruta, en la que indicamos nuestro nuevo permiso y un nuevo método para mostrar el contenido:
drupalbook.private_content:
path: '/private-page'
defaults:
_controller: '\Drupal\drupalbook\Controller\FirstPageController::privateContent'
_title: 'Contenido privado'
requirements:
_permission: 'access premium pages'
Después de agregar la nueva ruta, es necesario limpiar la caché.
También necesitaremos agregar el método privateContent() a nuestra clase FirstPageController:
/**
* Devuelve una página privada.
*
* @return array
* Un array renderizable simple.
*/
public function privateContent() {
$element = array(
'#markup' => 'Contenido privado',
);
return $element;
}
Ahora puedes limpiar la caché y verificar que nuestra página no está accesible para usuarios no registrados.
Ejemplos de código disponibles en GitHub: