В этом уроке мы расширим возможности нашего модуля и создадим контент, который будет доступен только зарегистрированным пользователям или пользователям с определенной ролью.
Примеры кода можно посмотреть на github:
https://github.com/levmyshkin/drupalbook8
Начнем с добавления нового YML-файла прямо в папке нашего модуля drupalbook.permissions.yml:
access premium pages: title: 'Access Premium pages' description: 'A custom permission for your pages.' restrict access: TRUE
Теперь зайдите на страницу прав доступа и выставите доступ к Premium контенту для нужных ролей, я сделаю это для зарегистрированных пользователей:
/admin/people/permissions
Теперь в drupalbook.routing.yml создадим новый route, в котором укажем наши новые права и новый метод для вывода контента:
drupalbook.private_content: path: '/private-page' defaults: _controller: '\Drupal\drupalbook\Controller\FirstPageController::privateContent' _title: 'Private content' requirements: _permission: 'access premium pages'
После добавления нового route нужно почистить кэш.
Также нам нужно будет добавить метод privateContent() в наш класс FirstPageController:
/** * Returns a private page. * * @return array * A simple renderable array. */ public function privateContent() { $element = array( '#markup' => 'Private content', ); return $element; }
Теперь можно почистить кеш и проверить, что наша страница не доступна не зарегистрированным пользователям.
Примеры кода можно посмотреть на github:
https://github.com/levmyshkin/drupalbook8
Добавить комментарий