根据上一节内容 Auth权限认证规则与管理组创建 我们创建好了相关的规则和管理组。下面介绍下如何在其他控制器中进行权限认证:
在控制器Controller目录中创建以下控制器。
1.创建登录控制器 LoginController.class.php
namespace Admin\Controller; use Think\Controller; class LoginController extends Controller{ public function index(){ if(IS_POST){ $_POST['password'] = md5($_POST['password']); $user = M('user'); if($user->create()){ if($data = $user->where(I())->find()){ $_SESSION['user'] = $data; $this->success("登录成功!",U("Index/index")); }else{ $this->error("登录失败"); } }else{ $this->error("登录失败"); } exit; } $this->display(); } public function logout(){ $_SESSION['user'] = array(); $this->redirect("Login/index"); } }
2.创建公共控制器 PublicController.class.php
namespace Admin\Controller; use Think\Controller; class PublicController extends Controller{ public function _initialize(){ //判断登录 $uid = $_SESSION['user']['id']; if(!$uid){ $this->error("请先登录!",U("Login/index")); } //判断超级管理员 if($uid == 6){ return true; } //权限认证 $auth = new \Think\Auth(); $rule = CONTROLLER_NAME.'/'.ACTION_NAME; if(!$auth->check($rule,$uid)){ $this->error("没有权限"); } } }
3.在其他控制器继承 PublicController.class.php
namespace Admin\Controller; class IndexController extends PublicController { public function index(){ $this->display(); } }
完成以上即可实现Auth权限认证控制。