Drupal 8: пользовательское разрешение не работает должным образом

Я новичок в Drupal 8 и в настоящее время пытаюсь создать модуль для него. Тем не менее, часы, проведенные, я до сих пор не могу заставить его работать.

Ниже приведены два файла:

#testmodule.routing.yml
testmodule.testmodule:
path: '/testmodule'
defaults:
_title: 'Index'
_content:
'\Drupal\testmodule\Controller\TestModuleController::testmodule'
requirements:
_permission: 'access content right away'#testmodule.permissions.yml
access content right away:
title: 'Access content'
description: 'Access content right away.'

Когда я получаю доступ /testmodule, он продолжает говорить мне Доступ запрещен. Кто-нибудь знает, что не так с модулем?

Заранее спасибо.

2

Решение

Существует проблема с отступом файла routing.yml. Отступы в файлах yml очень важны. Ниже правильно указан файл routing.yml:

#testmodule.routing.yml
testmodule.testmodule:
path: '/testmodule'
defaults:
_title: 'Index'
_content: '\Drupal\testmodule\Controller\TestModuleController::testmodule'
requirements:
_permission: 'access content right away'

Происходит то, что из-за ошибки отступа требования к маршруту (и, следовательно, разрешение) не анализируются должным образом, следовательно, ошибка отказа в доступе.

Обратите внимание, что если вы не определите requirements а также _permission (или вы их неправильно написали), вы получаете сообщение об ошибке отказа в доступе.

2

Другие решения

Ваш код выглядит хорошо для меня.

Первое, что я хотел бы, чтобы вы попробовали, — это зайти в «admin / people / permissions» и проверить, предоставлено ли «право доступа к контенту сразу» конкретной роли или нет.

0

По вопросам рекламы [email protected]