希望你们都很好。我有点问题。我不是Codeigniter的专家。
我有5个用户组,例如super_admin,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 ?>
答案 0 :(得分:0)
这是您可以测试的示例。
采取了一些假设,如连续ID和GET /
为ID 5,这些假设应该很明显。
相关的super_admin
功能已被注释掉。
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
。