Drupal 7-授予管理用户的权限,但不授予权限


11

我们在Drupal 7中设置了一个站点,希望某些用户可以访问该站点上的用户管理页面,并能够创建新用户,分配角色等,但是我们不想让他们访问该站点。角色和权限页面。

目前Drupal仅有2个权限Administer PermissionsAdminister users

拥有该Administer users权限,用户可以访问“用户管理”页面,并且可以创建新用户,但不能为用户分配角色。

如果用户具有Administer permissions权限,则他可以为用户分配角色,还可以访问权限和角色管理页面。

您将如何授予用户向用户分配角色的权限,但又阻止其访问权限页面?

Answers:


16

我有完全相同的要求,并且能够使用“ 角色委托”模块将其构建为完美:-)

这是我为您提供更多背景信息的方案-

  1. 我有一个具有角色的Drupal网站-A,B,C,Admin,Maint
  2. 我希望具有Maint角色的用户能够创建新用户,并同时为他们分配角色
  3. 我还想限制Maint用户只能将角色A,B,C分配给新用户,而不能将角色Admin分配给新用户。
  4. 使用“角色委托”模块只需单击几下即可

希望这可以帮助。


1
使用角色委派,我似乎无法配置谁可以创建用户。他们可以编辑它们以分配角色,但不能创建角色。我想念什么吗?
Johnathan Elmore

2

嗯...有趣的是似乎没有明确的方法可以做到这一点。这似乎可能是人们的共同特征。我找到了几个解决方案:

http://drupal.org/project/protect_permissions-但是,这尚未准备好用于生产。

但是,我认为您可以通过以下方式完成所需的任务:http : //drupal.org/project/permissions_lock

您还将需要:http : //drupal.org/project/user_permissions

后者似乎与您想要的相反,但是前者似乎完全按照您想要的做。我没有在我的开发网站上测试过这两个工具,以确保100%这对您有用。如果遇到其他问题,我将更新此答案。


1
我也开始按照您建议的思路进行思考,但是随后我找到了“角色委托”模块(drupal.org/project/role_delegation)。一定要检查一下这种要求。效果很好。
Sumeet Pareek 2012年

太棒了!我将此标记为书签,很好找到。
布兰登·比尔登

2

角色委派留下了安全漏洞。您需要为人员分配管理用户,以便他们可以使用管理页面及其工具。

但是,如果您这样做,则该角色甚至可以编辑超级管理员。有关完整说明,请检查当心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');
        }
    }
}

0

最近,我们一直在使用roleassign模块,它完全可以满足您的要求。它在根本上与role_delegation模块相同,但是如果您需要稍微不同的内容,则可以选择替代。

一个主要区别是您如何确定可分配的角色。使用roleassign,您只需选择要使其可用的角色,它只会添加一个新的权限来分配这些角色: 角色分配

role_delegation模块似乎为站点上存在的每个角色赋予了新的权限: role_delegation模块权限

role_delegation模块的安装次数似乎也增加了近三倍,并且发布了“推荐”的Drupal 8。问题队列似乎也更好,所以它可能是更好的选择?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.