12.4. Создание страниц для premium аккаунта.

В этом уроке мы расширим возможности нашего модуля и создадим контент, который будет доступен только зарегистрированным пользователям или пользователям с определенной ролью.

Примеры кода можно посмотреть на 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

Drupal 8 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

Добавить комментарий

Войти, используя Loginza Google Account Yandex Mail.ru Vkontakte Facebook

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.