在这里,我开发了一个应用程序,其中包含所有必需的方法,例如添加/删除/查看以及更多其他选项,但现在我需要相应地分隔页面类型的用户。例如,用户只有READ权限,管理员具有所有类型访问权限。
我找到了一些解决方案来解决这个问题,通过会话变量作为角色并提供对有限方法的访问,但问题是,无论我通过URL直接访问方法,所有用户都可以轻松访问它,即使是用户或管理员也是如此。
如何控制此访问权限?
答案 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()