2010-01-16 90 views
0

假设我有两个内容类型“作业列表”和“作业应用程序”。作业应用程序具有一个字段(使用CCK模块)来引用作业列表(必填字段)。假设工作申请有一个字段“状态”,其值为“新”,“接受”,“拒绝”。基于相关节点字段的Drupal(+ CCK)权限

我想设置权限,以便工作申请状态只能由其对应的工作清单的创建者设置。如果有一个插件可以做到这一点很好。我也想要一个定制插件可以实现这个的一般方向。

(我在下面章场景。O'Reilly的“使用Drupal的” 3)

+0

drupal.org上有人推荐我看看http://drupal.org/project/nodeaccess_nodereference – 2010-01-16 23:12:49

回答

2

我不知道是否有这个模块,但是这可以通过一些自定义代码很容易做到虽然。

  1. 使用hook_form_alter将您自己的验证处理程序添加到应用程序内容类型的node_edit表单中。
  2. 检查值是否已更改
  3. 设置错误是用户不是创建者或具有管理内容权限。
  4. 你完成了。
1

googletorp的方向是正确的轨道,但你将不得不照顾一些更多的权限也。

  • 删除应用程序内容类型的编辑自己的权限。
  • 此外,您可能不希望一个作业列表的作者列表编辑应用程序以响应其他一些工作列表。这是很难做任何内置的权限。因此,请检查form_alter钩子,以确定当前用户与正在编辑的应用程序连接到的作业列表的作者是否相同。
+0

您实际上并不需要花时间在权限上。只要有人尝试编辑所选字段,您就可以随时抛出一个表单错误。这将有效地阻止用户编辑,因为表单不会验证。但是,使用管理内容的用户可以编辑该字段,这可能是一个好主意,因为这是该权限的用途。 – googletorp 2010-01-16 22:24:23

+0

谢谢。我需要玩这个有点Drupal是全新的 – 2010-01-16 23:11:54