希望你们没事。我有一点问题。我不是代码点火器的专家。 我有 5 个用户组,例如super_admin、管理员、经销商、代理和一般。虽然super_admin将创建一个用户,但他可以将所有访问权限授予新用户。但管理员可以提供经销商、代理和一般。经销商可以代理和一般,最后代理不能只能一般访问。现在想要从没有用户权限的下拉菜单中隐藏这些用户组名称。 我的代码如下。我在create_user.php
页面中编写了代码。请帮助我。
<?php
foreach ($groups as $group):
$a=$this->ion_auth->get_users_groups()->row()->name;
if(!in_array($group->name, $a)){
?>
<option value="<?php echo $group['id']; ?>"><?php echo htmlspecialchars($group['description'], ENT_QUOTES, 'UTF-8'); ?></option>
<?php } endforeach ?>
</select>
</div>
?php endif ?>
下面是一个可以测试的示例。
很少有假设应该很明显,比如连续的 id,并且super_admin
是 id 5。
相关的ion_auth
函数被注释掉。
<?php
$groups = array(
array(
'id' => 1,
'name' => 'general'
),
array(
'id' => 2,
'name' => 'agent'
),
array(
'id' => 3,
'name' => 'reseller'
),
array(
'id' => 4,
'name' => 'admin'
),
array(
'id' => 5,
'name' => 'super_admin'
),
);
//$groups = $this->ion_auth->groups()->result_array();
array_pop($groups); // remove super_admin (last element) from array
$curr_user_group = 4;
//$curr_user_group = $this->ion_auth->get_users_groups()->row()->id;
$user_create_groups = $curr_user_group - 1;
$groups = array_slice($groups, 0, $user_create_groups);
echo '<pre>';
foreach ($groups as $group) {
print_r($group);
}
由于一般无法创建一个组,因此$groups
数组将为空白。希望您已经想到了这一点并拥有一些系统,以便具有该组的用户无法创建用户。另请注意,您需要在后端建立类似的验证函数,以确保用户不会通过更改浏览器中的选择框来提升自己或他人super_admin
。