Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何允许合适的人访问此功能?_Php_Codeigniter_Permissions_Logic - Fatal编程技术网

Php 如何允许合适的人访问此功能?

Php 如何允许合适的人访问此功能?,php,codeigniter,permissions,logic,Php,Codeigniter,Permissions,Logic,基本上,每个用户都有一组基于其角色(管理员、经理、卖家等)的权限,他们都可以选择编辑他们的个人资料,但我希望管理员能够编辑每个人的个人资料 编辑函数看起来像这样(我使用的是Codeigniter) 第一个想法是检查试图编辑页面的用户的会话id是否与正在编辑的用户的id相同,但这会使管理员编辑每个人的配置文件的能力变得无用 希望我今天能得到答案,谢谢你的帮助 编辑 我通过添加另一个条件并反转它们来修复此问题: 函数编辑($id) { if(在_数组('editUser',$perms)| |$th

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

编辑函数看起来像这样(我使用的是Codeigniter)

第一个想法是检查试图编辑页面的用户的会话id是否与正在编辑的用户的id相同,但这会使管理员编辑每个人的配置文件的能力变得无用

希望我今天能得到答案,谢谢你的帮助

编辑


我通过添加另一个条件并反转它们来修复此问题:

函数编辑($id)
{
if(在_数组('editUser',$perms)| |$this->session->userdata('id')==id)
{
//代码的其余部分。。。
}否则{
重定向(“主页”);
}
}

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

比如说

    if($this->session->userdata('role') == 'admin'){
      // Show admin folder files 
    }elseif($this->session->userdata('role') == 'normal_user'){
    // Other user folder files 
   }
google中有很多基于角色的库可用于Codeigniter

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

比如说

    if($this->session->userdata('role') == 'admin'){
      // Show admin folder files 
    }elseif($this->session->userdata('role') == 'normal_user'){
    // Other user folder files 
   }
google中有很多基于角色的库可用于Codeigniter

我通过添加另一个条件并反转它们来修复此问题:

函数编辑($id)
{
if(在_数组('editUser',$perms)| |$this->session->userdata('id')==id)
{
//代码的其余部分。。。
}否则{
重定向(“主页”);
}
}

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

我通过添加另一个条件并反转它们来修复此问题:

函数编辑($id)
{
if(在_数组('editUser',$perms)| |$this->session->userdata('id')==id)
{
//代码的其余部分。。。
}否则{
重定向(“主页”);
}
}

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

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

用这种方法


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

用这种方法


我也可以添加一个全新的功能,它可以做同样的事情,但可以指定给两个不同的角色(管理员和所有其他角色),但我不喜欢这个想法。你可以编写一个功能,检查试图编辑页面的用户的id是否与正在编辑的用户的id相同,或者如果当前用户的ID是管理员角色。我尝试过在(!in_array('editUser',$perms)| |$this->session->userdata('ID')!=$ID)中执行以下操作,但不起作用我也可以添加一个全新的函数,该函数将执行相同的操作,但将指定给两个不同的角色(管理员和所有其他角色)但是我不喜欢这个想法。你可以编写一个函数来检查试图编辑页面的用户的id是否与正在编辑的用户的id相同,或者当前用户的id是否处于管理员角色。我尝试过使用if(!in_array('editUser',$perms)| |$this->session->userdata('id')!=$id)但它不起作用