【问题标题】:Drupal 8: Custom permission not working properlyDrupal 8:自定义权限无法正常工作
【发布时间】:2014-10-17 02:59:55
【问题描述】:

我是 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 时,它一直告诉我访问被拒绝。有人知道这个模块有什么问题吗?

提前致谢。

【问题讨论】:

  • 您是否已将“立即访问内容”权限授予您正在测试的用户所拥有的角色?
  • @Clive 是的,我在权限视图中授予了它。

标签: php drupal drupal-modules drupal-8


【解决方案1】:

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】:

    你的代码在我看来不错。

    我希望您尝试的第一件事是转到“管理员/人员/权限”并检查“立即访问内容”权限是否授予特定角色。

    【讨论】:

      【解决方案3】:

      另外,需要注意的是路由是否有管理路径,如果有,您需要追加:

        options:
          _admin_route: TRUE
      

      【讨论】:

        猜你喜欢
        • 2020-06-24
        • 1970-01-01
        • 1970-01-01
        • 2016-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多