codeigniter - Codeigniter ion auth 用户管理同时创建一个新用户
问题描述
希望你们一切都好。我有一个小问题。我不是 Codeigniter 方面的专家。我有 5 个用户组,例如 super_admin、admin、reseller、agent 和 general。虽然 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
通过更改浏览器中的选择框来提升自己或他人。
推荐阅读
- python-3.x - 使用 gensim 从未知向量中获取最接近的向量
- node.js - 无法在子域(Plesk、Linux、NodeJs、Express)上运行 WebSocket 服务器
- css - 跨行的 Flex 项目高度相同
- c# - Azure AD:UWP App 自动登录 Azure AD(证书或已知凭据)
- javascript - 如何在 if 语句中添加多个命令?JavaScript
- django - 字段错误,试图引用自定义用户模型
- c++ - ncurses中的删除线文本
- python - 是否可以从网站下载“检查元素”数据?
- java - JavaFX WebView:如何更改默认光标?
- sql - 关系模式大括号还是圆括号?