为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
繁花不似锦 2022-10-28 14:17:07
基本上每个用户都有一组基于他们的角色(管理员、经理、卖家等)的权限,他们都可以选择编辑他们的个人资料,但我希望管理员能够编辑每个人的个人资料。编辑功能看起来像这样(我正在使用 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'); }}
查看完整描述

3 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

我通过添加另一个条件并反转它们来解决这个问题:


function edit($id)

{

 if(in_array('editUser', $perms) || $this->session->userdata('id') == $id)

 {

  //rest of the code...

 }else{

  redirect('home');

 }

}

抱歉这个愚蠢的问题,但它一直困扰着我一段时间,我终于让它工作了!


查看完整回答
反对 回复 2022-10-28
?
慕容森

TA贡献1853条经验 获得超18个赞

登录用户时将角色存储在会话中并进行处理


例如


    if($this->session->userdata('role') == 'admin'){

      // Show admin folder files 

    }elseif($this->session->userdata('role') == 'normal_user'){

    // Other user folder files 

   }

谷歌中有很多基于角色的库可用于 Codeigniter 常用库链接


查看完整回答
反对 回复 2022-10-28
?
墨色风雨

TA贡献1853条经验 获得超6个赞

您可以通过控制器查看页面进行控制

查看完整回答
反对 回复 2022-10-28
  • 3 回答
  • 0 关注
  • 94 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信