class BaseAdmin extends Controller
{
public function __construct(){
// Controller 里有 __construct魔术方法,我们直接继承调用
parent::__construct();
// 1,先公用方法里的 看是否登录。 未登录,去登录页面。
// 就需要创建登录页面和方法
$this->_admin = session('admin');
// 未登录的用户不允许访问
if(!$this->_admin){
header('Location: /admins/Account/login');
exit;
}
$this->assign('admin',$this->_admin);
// 判断用户是否有权限
$this->db = new Sysdb;
$group = $this->db->table('admin_groups')->where(array('gid'=>$this->_admin['gid']))->item();
if(!$group){
$this->request_error('对不起,您没有权限');
}
$rights = json_decode($group['rights']);
// 当前访问菜单
// 99,request()->controller(); 获取当前文件
// 99,request()->action(); 获取当前方法
$controller = request()->controller();
$action = request()->action();
// 99,查询菜单表(admin_menus),找到文件名和方法名,相同的那个菜单。 注意:菜单的方法名和文件名,不要重复
$res = $this->db->table('admin_menus')->where(array('controller'=>$controller,'method'=>$action))->item();
if(!$res){
$this->request_error('对不起,您访问的功能不存在');
}
if($res['status']==1){
$this->request_error('对不起,该功能已禁止使用');
}
if(!in_array($res['mid'],$rights)){
$this->request_error('对不起,您没有权限');
}
}
自问自答