gpt4 book ai didi

drupal - Drupal 7 中有没有办法阻止管理员编辑节点?

转载 作者:行者123 更新时间:2023-12-04 05:19:27 25 4
gpt4 key购买 nike

我有一个以编程方式创建(和更新)Drupal 7 节点的模块。

由于主体的内容是由程序以随机​​间隔更改的,因此我不希望任何人(包括管理员)能够编辑它们。有没有办法完全“关闭”允许管理员编辑节点的界面?

最佳答案

如果它是具有管理员角色的标准用户,您可以实现 hook_node_access() 在您的自定义模块中:

function MYMODULE_node_access($node, $op, $account) {
$type = is_string($node) ? $node : $node->type;
if ($type == 'the_type' && $op == 'update') {
return NODE_ACCESS_DENY;
}
return NODE_ACCESS_IGNORE;
}

如果它是“ super 用户”(用户 1),您需要获得更多创意,因为该用户绕过了许多访问检查。

你可以实现 hook_menu_alter() 覆盖节点编辑页面的访问回调,并提供您自己的:
function MYMODULE_menu_alter(&$items) {
$items['node/%node/edit']['access callback'] = 'MYMODULE_node_edit_form_access';
}

function MYMODULE_node_edit_form_access($node) {
$type = is_string($node) ? $node : $node->type;
if ($type == 'my_type') {
return FALSE;
}
return node_access('update', $node);
}

关于drupal - Drupal 7 中有没有办法阻止管理员编辑节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13828629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com