Drupal 7 当节点具有特定工作流状态时,如何防止编辑该节点

Drupal 7 当节点具有特定工作流状态时,如何防止编辑该节点,drupal-7,workflow,user-permissions,drupal-rules,Drupal 7,Workflow,User Permissions,Drupal Rules,我使用Drupal 7,并且我希望在节点具有特定工作流状态时,防止为特定用户角色编辑某些节点 例如,如果节点的工作流状态为“已验证”,则角色为“参与者”的用户无法对其进行编辑,但角色为“验证器”的用户可以对其进行编辑 如果工作流状态为“要验证”,则两个用户角色都可以对其进行编辑 是否可以使用模块“规则”和“工作流”来实现这种流程?您可能希望使用hook\u node\u访问($node,$op,$account)。在你的一个模块中创建这个钩子。若要在编辑时潜在地拒绝访问,请首先添加$op==“u

我使用Drupal 7,并且我希望在节点具有特定工作流状态时,防止为特定用户角色编辑某些节点

例如,如果节点的工作流状态为“已验证”,则角色为“参与者”的用户无法对其进行编辑,但角色为“验证器”的用户可以对其进行编辑

如果工作流状态为“要验证”,则两个用户角色都可以对其进行编辑

是否可以使用模块“规则”和“工作流”来实现这种流程?

您可能希望使用hook\u node\u访问($node,$op,$account)。在你的一个模块中创建这个钩子。若要在编辑时潜在地拒绝访问,请首先添加$op==“update”的检查,然后添加验证逻辑。若要拒绝访问,请返回NODE\u access\u deny,否则将不返回任何内容或NODE\u access\u IGNORE

一个简单的例子如下:

function MYMODULE_node_access($node, $op, $account) {
  if (($op == "update") && ($node->type == "node_type_to_check")) {
    // Add your extra validation checks here
    // ...and if you then want to block access return the following
    return NODE_ACCESS_DENY;
  }
}
您将找到有关hook\u node\u access()的更多信息

警告:如果您以管理员用户(用户1)身份登录,则无论您的hook\u node\u access()规则如何,都可以编辑节点,因此请确保使用“普通”用户进行测试