基本上每个用户都有一组基于其角色的权限(管理员、经理、卖家等(,他们都可以选择编辑自己的配置文件,但我希望管理员能够编辑每个人的配置文件。
编辑功能看起来像这样(我使用的是Codeigniter(
function edit($id)
{
if(!in_array('editUser'))
{
redirect('home');
}
//rest of the code...
}
第一个想法是检查试图编辑页面的用户的会话id是否与正在编辑的用户的id相同,但这会使管理员编辑每个人的配置文件的能力变得毫无用处。
希望我今天能得到答案,谢谢你的帮助。
编辑
我通过添加另一个条件并反转它们来解决这个问题:
function edit($id)
{
if(in_array('editUser', $perms) || $this->session->userdata('id') == $id)
{
//rest of the code...
}else{
redirect('home');
}
}
我通过添加另一个条件并反转它们来解决这个问题:
function edit($id)
{
if(in_array('editUser', $perms) || $this->session->userdata('id') == $id)
{
//rest of the code...
}else{
redirect('home');
}
}
很抱歉这个愚蠢的问题,但它已经困扰了我一段时间,我终于开始工作了!
登录用户时将角色存储在会话中并进行处理
例如
if($this->session->userdata('role') == 'admin'){
// Show admin folder files
}elseif($this->session->userdata('role') == 'normal_user'){
// Other user folder files
}
谷歌上有很多基于角色的库可用于Codeigniter常用库链接
您可以通过控制器和视图页面进行控制
通过这种方法
https://stackoverflow.com/a/60634187/7817622