为用户提供内容类型的“更改权限”链接?

时间:2009-10-26 01:28:32

标签: drupal drupal-6

我正在尝试找到针对特定问题的简单解决方案,这是一种允许我网站上的博主能够控制各个帖子的权限的方法。因此,他们可以决定是为所有访问者显示他们的帖子,还是仅为经过身份验证的用户显示。

到目前为止,我找到的最接近的模块解决方案是Node Access module。它非常接近,但它对我来说并不是很好,因为它为内容类型创建了一个新的“grant”选项卡,然后显示了具有太多权限选项的复选框(允许角色查看,编辑和删除),我只想显示视图选项,我需要它位于内容编辑/创建页面上,而不是单独的选项卡中。

除非我能找到另一种简单的解决方案,否则我将不得不在博客模块中添加一个黑客攻击。我想不出有任何其他方法可以做到。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

如果您想避免编码并保持简单,可以想到几种解决方案。

  • TAC Lite允许您将词汇表与访问控制架构相关联。每个术语可以与特定用户或用户角色的不同视图/编辑访问权限相关联。

    在这种情况下,您需要在配置的词汇表中使用单个术语。设置它以便设置此术语(“限制访问”)时,仅限制对经过身份验证的用户的访问。

    TAC_lite的优势在于可以灵活地构建您的访问模型,因为新的需求显示出来 - 例如让“高级订阅者”获得对更受限制的内容的访问权。

  • Content Access允许您按内容类型设置访问控制规则,并按节点覆盖。我无法与用户界面说话,因为我没有使用此模式。

答案 1 :(得分:0)

如果Graysides(好)建议不合适,您可以自行完成,而无需通过在自定义模块中实施hook_nodeapi()hook_form_alter()来“黑客”博客模块:

  • 在挂钩'加载'操作中,您可以添加对节点当前访问设置的检查,这些设置与匿名用户和经过身份验证的用户有关。您将为该节点对象添加一个属性(请注意潜在的命名冲突 - 您应该在节点对象中使用您的模块名称为自定义属性的名称添加前缀。)
  • 通过hook_form_alter(),您可以为博客节点的节点编辑表单添加表单元素(例如单选按钮),允许用户选择可见性,从而将其默认为新节点属性。< / LI>
  • insert的{​​{1}}和update操作中,您将再次检查新属性并相应地调整节点访问设置。

请注意,此方法可能会干扰其他节点访问模块操作,因此可能需要进行一些改进。我不推荐它 - 我只是想建议一个'黑客核心'的替代品。