【问题标题】:Drupal permissions: create, edit, published content per roleDrupal 权限:为每个角色创建、编辑、发布内容
【发布时间】:2013-10-25 03:45:26
【问题描述】:

我在互联网上寻找一个有助于设置创建/编辑/发布权限的模块 (Drupal 7)。我找不到执行以下操作的模块:

  • 经过验证的用户可以创建自己的未发布内容。
  • 经过验证的用户不能发布任何内容或拥有自己的内容。
  • 管理员可以创建、编辑和发布任何内容,无论是否发布。
  • 内容发布后,经过验证的用户可以编辑自己的内容,但会自动取消发布。

例如:一种每个人都可以发布的博客,但必须由管理员验证。更改内容后,必须再次验证。

【问题讨论】:

    标签: drupal drupal-7 drupal-modules user-permissions


    【解决方案1】:

    您似乎可以将 Drupal 自己的功能用于几乎所有您需要的任务:

    1 - 如果您授予经过身份验证的用户创建内容的权限,并且您在您的内容类型设置中选中“已发布”复选框,他们可以创建已发布的内容;

    2 - 经过身份验证的用户通常没有管理节点权限,因此他们不能发布自己的内容(或任何内容);

    3 - 管理员可以做任何他们想做的事,只要他们有管理节点的权限。

    4 - 您可以将编辑自己的内容设置为经过身份验证的用户。

    在编辑内容时,您还需要一个技巧来取消发布内容。我不知道任何提供此功能的 contrib 模块,但您可以轻松地将其添加到您的自定义模块中,例如:

    function <YOUR_MODULE_NAME>_node_presave($node) {
      if (! user_access("administer nodes")) { // skip if user has admmin permission
        $node->status = 0; // unpublish the node
      }
    }
    

    【讨论】:

    • 感谢您的回答!我将尝试前 3 个解决方案。对于最后一个问题,我设置了一个规则,当内容由经过身份验证的用户编辑时取消发布,因此我不必制作自定义模块。
    【解决方案2】:

    就像 parnatt 所说,您几乎可以使用 admin/people/permissions 完成所有这些操作。查看节点部分。

    如需更详细的工作流程解决方案,请查看 Workbench 及其子模块,例如 Workbench Moderation

    【讨论】:

    • 感谢您提出使用 Workbench Moderation 的想法。我一定会用这个:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多