如何在codeigniter中创建具有不同版主的页面

时间:2013-10-09 10:33:18

标签: php codeigniter codeigniter-2

在这里,我开发了一个应用程序,其中包含所有必需的方法,例如添加/删除/查看以及更多其他选项,但现在我需要相应地分隔页面类型的用户。例如,用户只有READ权限,管理员具有所有类型访问权限。

我找到了一些解决方案来解决这个问题,通过会话变量作为角色并提供对有限方法的访问,但问题是,无论我通过URL直接访问方法,所有用户都可以轻松访问它,即使是用户或管理员也是如此。

如何控制此访问权限?

1 个答案:

答案 0 :(得分:0)

示例控制器方法

public function add(){
    //only allow administrators
    if($this->session->userdata('user_type') != 'admin'){
         //do whatever you want here, redirect user to some place (login) or show an error
         $data['error'] = 'You do not have necessary permissions';
         $this->load->view('view-file', $data);
   }else{
        //ok so user is admin, now do the rest of the job
   }
}

上述方法,您必须在每种方法中手动检查。更好的方法是创建一个MY_Controller并在那里有共同的逻辑

class MY_Controller extends CI_Controller{
    public function adminCheck(){
        if($this->session->userdata('user_type') != 'admin'){
            $data['error'] = 'No permission';
            $this->load->view('view-file', $data);
            exit();
        }
    }
}

在普通的控制器方法中,您只需调用函数adminCheck()

即可