代码之家  ›  专栏  ›  技术社区  ›  drmonkeyninja

Drupal 6管理节点权限正在忽略内容类型权限

  •  1
  • drmonkeyninja  · 技术社区  · 16 年前

    我需要为不同的用户角色设置不同的“创建内容”权限。仅当特定角色未被授予“管理节点”权限时,此操作才起作用。但是,如果没有此权限,角色将无权控制是否发布节点(我需要此权限)或查看内容管理表(Home Administrate content management)。

    例如,我希望用户角色能够创建新的新闻项目,并且能够发布/取消发布它们,但不能创建新页面(但是能够编辑现有页面)。

    有人知道怎么解决这个问题吗?或者应该设置哪些权限?

    3 回复  |  直到 16 年前
        1
  •  5
  •   Kevin    16 年前

    administrate Nodes权限提供了超出必要的访问权限,有些模块将其用作辅助权限,因为它存在。

    您可能要关闭此权限并实现 Override Node Options 允许用户发布未发布内容的模块。这些权限可以与内容类型级别的创建/编辑/删除权限配合使用。

        2
  •  0
  •   Dylan West    16 年前

    http://drupal.org/node/214190 看起来Drupal7可能允许发布和全面管理之间的权限分离,但是现在您必须使用补丁。

        3
  •  0
  •   mikeytown2    15 年前

    我不想安装另一个模块,所以我把这段代码放进去了 hook_init() 在我们的一个自定义模块中。通过在用户没有“创建”权限时拒绝访问来强制执行节点/添加页 “内容”权限。

      $arg = arg();
      // Quick hack to enforce node creation permissions.
      if (   $arg[0] == 'node'
          && !empty($arg[1])
          && $arg[1] == 'add'
          && !empty($arg[2])
            ) {
        $arg[2] = str_replace('-', '_', $arg[2]);
        if (!user_access('create ' . $arg[2] . ' content')) {
          drupal_access_denied();
        }
      }