如何让合适的人访问此功能?

基本上每个用户都有一组基于他们的角色(管理员、经理、卖家等)的权限,他们都可以选择编辑他们的个人资料,但我希望管理员能够编辑每个人的个人资料。


编辑功能看起来像这样(我正在使用 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');

 }

}


繁花不似锦
浏览 99回答 3
3回答

弑天下

我通过添加另一个条件并反转它们来解决这个问题: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 常用库链接

墨色风雨

您可以通过控制器和查看页面进行控制
打开App,查看更多内容
随时随地看视频慕课网APP