Answers:
我有完全相同的要求,并且能够使用“ 角色委托”模块将其构建为完美:-)
这是我为您提供更多背景信息的方案-
希望这可以帮助。
嗯...有趣的是似乎没有明确的方法可以做到这一点。这似乎可能是人们的共同特征。我找到了几个解决方案:
http://drupal.org/project/protect_permissions-但是,这尚未准备好用于生产。
但是,我认为您可以通过以下方式完成所需的任务:http : //drupal.org/project/permissions_lock
您还将需要:http : //drupal.org/project/user_permissions
后者似乎与您想要的相反,但是前者似乎完全按照您想要的做。我没有在我的开发网站上测试过这两个工具,以确保100%这对您有用。如果遇到其他问题,我将更新此答案。
角色委派留下了安全漏洞。您需要为人员分配管理用户,以便他们可以使用管理页面及其工具。
但是,如果您这样做,则该角色甚至可以编辑超级管理员。有关完整说明,请检查当心Drupal的“管理用户”权限。
我的解决方案是角色委派+这个钩子
function hook_user_presave(&$edit, $account, $category) {
if( $account->uid == 1 || in_array('adminrole',$account->roles)){ //trying to edit an admin
global $user;
if($user->uid != 1){//only super admin can do that
drupal_set_message( "You attempted to edit an admin or dev user name and you are not allowed, this attempt was logged." ,'error');
watchdog('permissions_extra','Logged in user %user tried to edit account %account', array('%user' => $user->uid, '%account' => $account->uid), WATCHDOG_ERROR);
drupal_goto('/admin/people');
}
}
}
最近,我们一直在使用roleassign模块,它完全可以满足您的要求。它在根本上与role_delegation模块相同,但是如果您需要稍微不同的内容,则可以选择替代。
一个主要区别是您如何确定可分配的角色。使用roleassign,您只需选择要使其可用的角色,它只会添加一个新的权限来分配这些角色:
role_delegation模块似乎为站点上存在的每个角色赋予了新的权限:
role_delegation模块的安装次数似乎也增加了近三倍,并且发布了“推荐”的Drupal 8。问题队列似乎也更好,所以它可能是更好的选择?