有时(以及在我运行"drush cc all“之后),带有访问回调的自定义模块会在管理员尝试编辑用户时返回一个‘拒绝访问’错误。我可以通过禁用和重新启用(任意)模块来解决这个问题--而不仅仅是带有访问回调代码的模块。如果删除此代码,管理员编辑用户的功能将被完全永久恢复。下面是我的自定义模块中的代码:
function cs_menu_alter(&$items) {
$items['user/%/edit']['access callback'] = 'cs_user_edit_access';
}
function cs_user_edit_access() {
global $user;
if (!user_has_role(3, $user) || !user_has_role(4, $user)) {
return FALSE;
}
else {
return TRUE;
}
}我不知道为什么这段代码会突然停止工作,但我真的不想失去这个自定义代码提供的功能(大多数情况下)。
发布于 2018-12-03 15:36:44
我能够通过删除次要函数并仅使用以下代码来解决我的用例:
function cs_menu_alter(&$items) {
$items['user/%user/edit']['access arguments'] = array('administer users');
$items['user/%user/edit']['access callback'] = 'user_access';
}https://drupal.stackexchange.com/questions/273410
复制相似问题