thinkphp教程之RBAC详解4之权限校验

jerry thinkphp 2015年11月18日 收藏
权限校验部分
新建CommonAction类文件,写入以下代码
  1. <?php
  2. class CommonAction extends Action{
  3. //初始化方法,调用方法时会先执行
  4. function _initialize(){
  5.     header('Content-Type:text/html;charset=utf-8');
  6.         import('ORG.Util.Cookie');
  7.         // 用户权限检查
  8.         if (C('USER_AUTH_ON') && !in_array(MODULE_NAME, explode(',', C('NOT_AUTH_MODULE')))) {
  9.             import('ORG.Util.RBAC');
  10.             if (!RBAC::AccessDecision()) {
  11.                 //检查认证识别号
  12.                 if (!$_SESSION [C('USER_AUTH_KEY')]) {
  13.                     //跳转到认证网关
  14.                     redirect(PHP_FILE . C('USER_AUTH_GATEWAY'));
  15.                 }else{
  16.                     echo L('_VALID_ACCESS_');
  17.                     exit();
  18.                 }
  19.                 // 没有权限 抛出错误
  20.                 if (C('RBAC_ERROR_PAGE')) {
  21.                     // 定义权限错误页面
  22.                     redirect(C('RBAC_ERROR_PAGE'));
  23.                 } else {
  24.                     if (C('GUEST_AUTH_ON')) {
  25.                         $this->assign('jumpUrl', PHP_FILE . C('USER_AUTH_GATEWAY'));
  26.                     }
  27.                     // 提示错误信息
  28.                     $this->error(L('_VALID_ACCESS_'));
  29.                 }
  30.             }
  31.         }
  32. }
到此RBAC权限判断就基本完成,是不是没有想象中那么难?如果看完这几篇文章还是不明白,欢迎加我QQ544828662咨询。