如何从drupal用户列表中隐藏某些用户

时间:2011-02-20 08:04:35

标签: php drupal drupal-6

我想从用户列表中隐藏某个用户(具有完全权限的技术管理员)。因为admin(另一个管理员拥有较少的权限)不会从用户列表中删除此管理员。虽然管理员可以从网站删除其他用户。 怎么做?

3 个答案:

答案 0 :(得分:0)

尝试http://drupal.org/project/userprotect

管理员用户权限存在问题并且授予太多权限是一般性问题。

答案 1 :(得分:0)

使用视图复制用户列表并在“Nid!= [隐藏用户的ID]”上设置过滤器。

答案 2 :(得分:0)

你可以改变你的观点。转到视图>管理:用户>编辑。然后在FILTER CRITERIA>添加>用户:角色。在Operator中选择Is none of并选择要隐藏的角色(管理员),点按“应用并保存”。完成!

奖励:您还可以通过在自定义模块中创建hook_form_alter()来隐藏此用户角色(添加新用户)。像这样:

/**
 * Implements hook_form_alter().
 */
function MyModule_form_alter(&$form, &$form_state, $form_id) {
    //to get the current user role
    global $user;
    $user_roles = $user->roles;

    //use devel to find the user role, which you wish to hide
    //dsm($form);

    switch ($form_id) {
        case 'user_register_form':
            if (!in_array('administrator', $user_roles)) { // hide this only if the current user role is not administrator
                unset($form['account']['roles']['#options'][3]);
            }
        break;
    }
}

这将在您创建新用户时隐藏administrator role。您应该按照相同的方式将其隐藏在用户编辑表单中。