项目中由于需要设计用户的权限检查,这个也是一个很普遍的需求,整理下自己的思路,在用户登录之后通过设置session中的用户权限的id这里业务小的
系统可以采用该办法,如果业务系统过于庞大不太建议这么使用。在CI的全局控制器中设计全局的权限检查函数代码如下:
protected function check_permission($key=null){
if($key){
$ids = $this->session->userdata('permission_ids');
if(!in_array($key,$ids )){
echo "你没有访问权限";
exit;
};
}
}
之后在根据需要设置权限检查的控制器中,只要进行权限的检查就可以了。。
//request for get_lists
public function get_lists(){
$this->check_permission(111);
exit;
}
当然个人觉得这个方法也不是很好,由于系统中请求的url过多,所以如果每一个url都添加这样的代码就显得不是很好。。。也看到过一种其他的思路,就是
为每一个用户建立建立自己的导航栏。。。这样方便了管理。。不过感觉也不太合理...暂时也没有很好的方法,就记录到这里了。。