当前位置: 首页>>代码示例>>PHP>>正文


PHP RBAC::checkAccess方法代码示例

本文整理汇总了PHP中RBAC::checkAccess方法的典型用法代码示例。如果您正苦于以下问题:PHP RBAC::checkAccess方法的具体用法?PHP RBAC::checkAccess怎么用?PHP RBAC::checkAccess使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在RBAC的用法示例。


在下文中一共展示了RBAC::checkAccess方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: AccessDecision

 public static function AccessDecision($appName = APP_NAME)
 {
     if (RBAC::checkAccess()) {
         $accessGuid = md5($appName . MODULE_NAME . ACTION_NAME);
         if (empty($_SESSION[C('ADMIN_AUTH_KEY')])) {
             if (C('USER_AUTH_TYPE') == 2) {
                 $accessList = RBAC::getAccessList($_SESSION[C('USER_AUTH_KEY')]);
             } else {
                 if ($_SESSION[$accessGuid]) {
                     return true;
                 }
                 $accessList = $_SESSION['_ACCESS_LIST'];
             }
             $module = defined('P_MODULE_NAME') ? P_MODULE_NAME : MODULE_NAME;
             if (!isset($accessList[strtoupper($appName)][strtoupper($module)][strtoupper(ACTION_NAME)])) {
                 $_SESSION[$accessGuid] = false;
                 return false;
             } else {
                 $_SESSION[$accessGuid] = true;
             }
         } else {
             return true;
         }
     }
     return true;
 }
开发者ID:hehekeke,项目名称:pigcms,代码行数:26,代码来源:RBAC.class.php

示例2: _initialize

 protected function _initialize()
 {
     /*if (!session(C('ADMIN_AUTH_KEY'))) {
           $this->error('请重新登录',U('Admin/index'));
       } */
     define('RES', THEME_PATH . 'common');
     define('STATICS', TMPL_PATH . 'static');
     //Input::noGPC();
     $is_passed = true;
     if (RBAC::checkAccess()) {
         $is_passed = RBAC::AccessDecision();
     }
     if ($is_passed == false) {
         echo '不允许查看';
         exit;
     }
     $this->assign('action', $this->getActionName());
 }
开发者ID:zhaoshengloveqingqing,项目名称:Wechat,代码行数:18,代码来源:BackAction.class.php

示例3: _initialize

 public function _initialize()
 {
     import('ORG.RBAC.RBAC');
     // 检查认证
     if (RBAC::checkAccess()) {
         //检查认证识别号
         if (!$_SESSION[C('USER_AUTH_KEY')]) {
             //跳转到认证网关
             redirect(PHP_FILE . C('USER_AUTH_GATEWAY'));
         }
         // 检查权限
         if (!RBAC::AccessDecision()) {
             $this->error('没有权限!');
         }
     }
     if (isset($_SESSION[C('USER_AUTH_KEY')])) {
         //显示菜单项
         $menu = array();
         if (isset($_SESSION['menu' . $_SESSION[C('USER_AUTH_KEY')]])) {
             //如果已经缓存,直接读取缓存
             $menu = $_SESSION['menu' . $_SESSION[C('USER_AUTH_KEY')]];
         } else {
             //读取数据库模块列表生成菜单项
             $node = D("Node");
             $id = $node->getField("id", "name='" . APP_NAME . "'");
             $list = $node->where('level=2 AND  status=1 AND pid=' . $id)->field('id,name,title')->order('seqNo asc')->findAll();
             $accessList = $_SESSION['_ACCESS_LIST'];
             foreach ($list as $key => $module) {
                 if (isset($accessList[strtoupper(APP_NAME)][strtoupper($module['name'])]) || $_SESSION['administrator']) {
                     //设置模块访问权限
                     $module['access'] = 1;
                     $menu[$key] = $module;
                 }
             }
             //缓存菜单访问
             $_SESSION['menu' . $_SESSION[C('USER_AUTH_KEY')]] = $menu;
         }
         $this->assign('menu', $menu);
         $this->assign("login", true);
         //显示登录用户名称
         $this->assign('loginUserName', $_SESSION['loginUserName']);
     }
     parent::_initialize();
 }
开发者ID:lee99,项目名称:tpmaker,代码行数:44,代码来源:PublicAction.class.php

示例4: _initialize

 public function _initialize()
 {
     import('ORG.RBAC.RBAC');
     /* 检查认证*/
     if (!RBAC::checkAccess()) {
         //检查认证识别号
         if (!$_SESSION[C('USER_AUTH_KEY')]) {
             //跳转到认证网关
             redirect(PHP_FILE . C('USER_AUTH_GATEWAY'));
         }
         // 检查权限
         if (!RBAC::AccessDecision()) {
             $this->error('没有权限!');
         }
     }
     import("ORG.Util.Page");
     //引用分页类
     import("@.Com.ajaxpage");
     //引用ajax分页类
 }
开发者ID:lee99,项目名称:tpmaker,代码行数:20,代码来源:PublicAction.class.php

示例5: AccessDecision

 static function AccessDecision()
 {
     //检查是否需要认证
     if (RBAC::checkAccess()) {
         //检查认证识别号
         if (!Session::is_set(C('USER_AUTH_KEY'))) {
             //跳转到认证网关
             redirect(PHP_FILE . C('USER_AUTH_GATEWAY'));
         }
         //存在认证识别号,则进行进一步的访问决策
         $accessGuid = md5(APP_NAME . MODULE_NAME . ACTION_NAME);
         if (!Session::is_setLocal('administrator')) {
             //管理员无需认证
             if (C('USER_AUTH_TYPE') == 2) {
                 //加强验证和即时验证模式 更加安全 后台权限修改可以即时生效
                 //通过数据库进行访问检查
                 $accessList = RBAC::getAccessList();
             } else {
                 // 如果是管理员或者当前操作已经认证过,无需再次认证
                 if (Session::is_set($accessGuid)) {
                     return;
                 }
                 //登录验证模式,比较登录后保存的权限访问列表
                 $accessList = Session::get('_ACCESS_LIST');
             }
             if (!isset($accessList[strtoupper(APP_NAME)][strtoupper(MODULE_NAME)][strtoupper(ACTION_NAME)])) {
                 throw_exception(L('_VALID_ACCESS_'));
             } else {
                 Session::set($accessGuid, true);
             }
         }
     }
     return true;
 }
开发者ID:BGCX262,项目名称:zxzjob-svn-to-git,代码行数:34,代码来源:RBAC.class.php

示例6: AccessDecision

 public static function AccessDecision($appName = APP_NAME)
 {
     //检查是否需要认证
     if (RBAC::checkAccess()) {
         //存在认证识别号,则进行进一步的访问决策
         $accessGuid = md5($appName . MODULE_NAME . ACTION_NAME);
         if (empty($_SESSION[C('ADMIN_AUTH_KEY')])) {
             if (C('USER_AUTH_TYPE') == 2) {
                 //加强验证和即时验证模式 更加安全 后台权限修改可以即时生效
                 //通过数据库进行访问检查
                 $accessList = RBAC::getAccessList($_SESSION[C('USER_AUTH_KEY')]);
             } else {
                 // 如果是管理员或者当前操作已经认证过,无需再次认证
                 if ($_SESSION[$accessGuid]) {
                     return $_SESSION[$accessGuid];
                 }
                 //登录验证模式,比较登录后保存的权限访问列表
                 $accessList = $_SESSION['_ACCESS_LIST'];
             }
             //栏目权限
             if (!isset($_SESSION[C('USER_CONTENT_KEY')])) {
                 $table = array('role' => C('RBAC_ROLE_TABLE'), 'user' => C('RBAC_USER_TABLE'));
                 $sql = "select role.typeids from " . $table['role'] . " as role," . $table['user'] . " as user" . " where user.user_id=" . $_SESSION[C('USER_AUTH_KEY')] . " and user.role_id=role.id and role.status=1";
                 //echo $sql;
                 $rs = M()->query($sql);
                 if ($rs) {
                     $_SESSION[C('USER_CONTENT_KEY')] = $rs[0]['typeids'];
                 } else {
                     $_SESSION[C('USER_CONTENT_KEY')] = '';
                 }
             }
             //判断是否为组件化模式,如果是,验证其全模块名
             $module = defined('P_MODULE_NAME') ? P_MODULE_NAME : MODULE_NAME;
             //追影改写默认为无需认证 只有设置了才验证因为没有添加进node的实在太多
             $model_node = new Model(C('RBAC_NODE_TABLE'), NULL);
             $t2 = $model_node->where("upper(`name`)='" . strtoupper($module) . "' and level=2")->find();
             if (!$t2) {
                 $_SESSION[$accessGuid] = false;
                 return false;
             }
             $t = $model_node->where("upper(`name`)='" . strtoupper(ACTION_NAME) . "' and level=3 and pid=" . $t2['id'])->find();
             //echo $model_node->getLastSql();
             if ($t) {
                 //方法存在于node检查是否有权限
                 if (!isset($accessList[strtoupper($appName)][strtoupper($module)][strtoupper(ACTION_NAME)])) {
                     $_SESSION[$accessGuid] = false;
                     return false;
                 } else {
                     $_SESSION[$accessGuid] = true;
                     return true;
                 }
             } else {
                 //方法不存在只module检查
                 if (!isset($accessList[strtoupper($appName)][strtoupper($module)])) {
                     $_SESSION[$accessGuid] = false;
                     return false;
                 } else {
                     $_SESSION[$accessGuid] = true;
                     return true;
                 }
             }
         } else {
             //管理员无需认证
             return true;
         }
     }
     return true;
 }
开发者ID:babyhuangshiming,项目名称:webserver,代码行数:68,代码来源:RBAC.class.php

示例7: _initialize

 function _initialize()
 {
     $this->getAuth();
     //用户信息
     $this->u = D('User');
     if (!empty($this->uid)) {
         $r = $this->u->find($this->uid);
         //echo $this->u->getLastSql();
         //var_dump($r);
         $this->assign('user', $r);
     }
     if (C('USER_AUTH_ON')) {
         import('@.ORG.Util.RBAC_WEB');
         $app = 'USER';
     } else {
         import('ORG.Util.RBAC');
         $app = APP_NAME;
     }
     //var_dump(RBAC::checkAccess());
     //exit('xx');
     if (RBAC::checkAccess()) {
         //认证,临时简化版
         $this->getAuth();
         //var_dump($this->user);exit('s');
         if (empty($this->user->uid)) {
             //是否登录
             redirect(C('USER_AUTH_GATEWAY'));
             //是否有权限
         }
         //var_dump(RBAC::AccessDecision ());exit('x');
         if (!RBAC::AccessDecision($app)) {
             //检查认证识别号
             if (!$_SESSION[C('USER_AUTH_KEY')]) {
                 //跳转到认证网关
                 redirect(C('USER_AUTH_GATEWAY'));
             }
             // 没有权限 抛出错误
             if (C('RBAC_ERROR_PAGE')) {
                 // 定义权限错误页面
                 redirect(C('RBAC_ERROR_PAGE'));
             } else {
                 if (C('GUEST_AUTH_ON')) {
                     $this->assign('jumpUrl', PHP_FILE . C('USER_AUTH_GATEWAY'));
                 }
                 // 提示错误信息
                 $this->error(L('_VALID_ACCESS_'));
             }
         }
     } else {
         //不认证
     }
     //exit;
     // 用户权限检查
     /*if (C ( 'USER_AUTH_ON' ) && !in_array(MODULE_NAME,explode(',',C('NOT_AUTH_MODULE')))) {
     			import ( 'ORG.Util.RBAC' );
     			if (! RBAC::AccessDecision ()) {
     				//检查认证识别号
     				if (! $_SESSION [C ( 'USER_AUTH_KEY' )]) {
     					//跳转到认证网关
     					redirect ( PHP_FILE . C ( 'USER_AUTH_GATEWAY' ) );
     				}
     				// 没有权限 抛出错误
     				if (C ( 'RBAC_ERROR_PAGE' )) {
     					// 定义权限错误页面
     					redirect ( C ( 'RBAC_ERROR_PAGE' ) );
     				} else {
     					if (C ( 'GUEST_AUTH_ON' )) {
     						$this->assign ( 'jumpUrl', PHP_FILE . C ( 'USER_AUTH_GATEWAY' ) );
     					}
     					// 提示错误信息
     					$this->error ( L ( '_VALID_ACCESS_' ) );
     				}
     			}
     		}*/
     $this->keywords = C('keywords');
     $this->description = C('description');
 }
开发者ID:lovesnow,项目名称:php_c_shortlink,代码行数:77,代码来源:CommonAction.class.php

示例8: AccessDecision

 static function AccessDecision($appName = APP_NAME)
 {
     //检查是否需要认证
     if (RBAC::checkAccess()) {
         //检查认证识别号
         if (!$_SESSION[C('USER_AUTH_KEY')]) {
             if (C('GUEST_AUTH_ON')) {
                 // 开启游客授权访问
                 if (!isset($_SESSION['_ACCESS_LIST'])) {
                     // 保存游客权限
                     RBAC::saveAccessList(C('GUEST_AUTH_ID'));
                 }
             } else {
                 // 禁止游客访问跳转到认证网关
                 redirect(PHP_FILE . C('USER_AUTH_GATEWAY'));
             }
         }
         //存在认证识别号,则进行进一步的访问决策
         $accessGuid = md5($appName . MODULE_NAME . ACTION_NAME);
         if (!$_SESSION[C('ADMIN_AUTH_KEY')]) {
             //管理员无需认证
             if (C('USER_AUTH_TYPE') == 2) {
                 //加强验证和即时验证模式 更加安全 后台权限修改可以即时生效
                 //通过数据库进行访问检查
                 $accessList = RBAC::getAccessList();
             } else {
                 // 如果是管理员或者当前操作已经认证过,无需再次认证
                 if ($_SESSION[$accessGuid]) {
                     return true;
                 }
                 //登录验证模式,比较登录后保存的权限访问列表
                 $accessList = $_SESSION['_ACCESS_LIST'];
             }
             //判断是否为组件化模式,如果是,验证其全模块名
             $module = defined('C_MODULE_NAME') ? C_MODULE_NAME : MODULE_NAME;
             if (!isset($accessList[strtoupper($appName)][strtoupper($module)][strtoupper(ACTION_NAME)])) {
                 //throw_exception(L('_VALID_ACCESS_'));
                 return false;
             } else {
                 $_SESSION[$accessGuid] = true;
             }
         }
     }
     return true;
 }
开发者ID:dalinhuang,项目名称:concourse,代码行数:45,代码来源:RBAC.class.php

示例9: AccessDecision

 public static function AccessDecision($appName = APP_NAME)
 {
     //检查是否需要认证
     if (RBAC::checkAccess()) {
         //存在认证识别号,则进行进一步的访问决策
         $accessGuid = md5($appName . MODULE_NAME . ACTION_NAME);
         //判断是否超级管理员,是无需进行权限认证
         $ADMIN_AUTH_KEY = session(C('ADMIN_AUTH_KEY'));
         if (empty($ADMIN_AUTH_KEY)) {
             //认证类型 1 登录认证 2 实时认证
             if (C('USER_AUTH_TYPE') == 2) {
                 //加强验证和即时验证模式 更加安全 后台权限修改可以即时生效
                 //通过数据库进行访问检查
                 $accessList = RBAC::getAccessList(session(C('USER_AUTH_KEY')));
             } else {
                 // 如果是管理员或者当前操作已经认证过,无需再次认证
                 if (session($accessGuid)) {
                     return true;
                 }
                 //登录验证模式,比较登录后保存的权限访问列表
                 $accessList = session("_ACCESS_LIST");
             }
             //判断是否为组件化模式,如果是,验证其全模块名
             $module = defined('P_MODULE_NAME') ? P_MODULE_NAME : MODULE_NAME;
             if (!isset($accessList[strtoupper($appName)][strtoupper($module)][strtoupper(ACTION_NAME)])) {
                 if (self::checkLogin() == true) {
                     if ($appName == "Admin" && in_array(MODULE_NAME, array("Index", "Main")) && in_array(ACTION_NAME, array("index"))) {
                         session($accessGuid, true);
                         return true;
                     }
                     //如果是public_开头的验证通过。
                     if (substr(ACTION_NAME, 0, 7) == 'public_') {
                         session($accessGuid, true);
                         return true;
                     }
                     //如果是内容模块,直接验证通过,交给内容模块自己控制权限
                     if ("Contents" == $appName && "Content" == MODULE_NAME) {
                         session($accessGuid, true);
                         return true;
                     }
                 }
                 session($accessGuid, false);
                 return false;
             } else {
                 session($accessGuid, true);
             }
         } else {
             //进行登陆检测
             if (self::checkLogin()) {
                 return true;
             }
             return false;
         }
     }
     return true;
 }
开发者ID:BGCX262,项目名称:ztoa-svn-to-git,代码行数:56,代码来源:RBAC.class.php

示例10: AccessDecision

 public static function AccessDecision($appName = APP_NAME)
 {
     //检查是否需要认证
     if (RBAC::checkAccess()) {
         //存在认证识别号,则进行进一步的访问决策
         $accessGuid = md5($appName . MODULE_NAME . ACTION_NAME);
         if (empty($_SESSION[C('ADMIN_AUTH_KEY')])) {
             if (C('USER_AUTH_TYPE') == 2) {
                 //加强验证和即时验证模式 更加安全 后台权限修改可以即时生效
                 //通过数据库进行访问检查
                 $accessList = RBAC::getAccessList($_SESSION[C('USER_AUTH_KEY')]);
             } else {
                 // 如果是管理员或者当前操作已经认证过,无需再次认证
                 //if( $_SESSION[$accessGuid]) {by wangcheng
                 if ($_SESSION[strtolower(MODULE_NAME . '_' . ACTION_NAME)]) {
                     return true;
                 }
                 //登录验证模式,比较登录后保存的权限访问列表
                 //$accessList = $_SESSION['_ACCESS_LIST'];
                 $file = DConfig_PATH . "/AccessList/access_" . $_SESSION[C('USER_AUTH_KEY')] . ".php";
                 if (!file_exists($file)) {
                     if (null === $authId) {
                         $authId = $_SESSION[C('USER_AUTH_KEY')];
                     }
                     $accessList = RBAC::getAccessList($authId);
                     if (!file_exists(DConfig_PATH . "/AccessList")) {
                         createFolder(dirname(DConfig_PATH . "/AccessList"));
                         mkdir(DConfig_PATH . "/AccessList", 0777);
                     }
                     RBAC::writeover($file, "return " . RBAC::pw_var_export($accessList) . ";\n", true);
                     if (!C("_access_list")) {
                         foreach ($accessList as $k3 => $v3) {
                             foreach ($accessList[$k3] as $k1 => $v1) {
                                 foreach ($accessList[$k3][$k1] as $k => $v) {
                                     $p = explode("-", $v);
                                     if ($p[1] != 5) {
                                         //过滤禁止权限
                                         $_SESSION[strtolower($k1 . '_' . $k)] = $p[1];
                                     }
                                 }
                             }
                         }
                         C("_access_list", true);
                     }
                 } else {
                     $accessList = (require $file);
                     if (!C("_access_list")) {
                         foreach ($accessList as $k3 => $v3) {
                             foreach ($accessList[$k3] as $k1 => $v1) {
                                 foreach ($accessList[$k3][$k1] as $k => $v) {
                                     $p = explode("-", $v);
                                     if ($p[1] != 5) {
                                         //过滤禁止权限
                                         $_SESSION[strtolower($k1 . '_' . $k)] = $p[1];
                                     }
                                 }
                             }
                         }
                         C("_access_list", true);
                     }
                 }
             }
             //判断是否为组件化模式,如果是,验证其全模块名
             $module = defined('P_MODULE_NAME') ? P_MODULE_NAME : MODULE_NAME;
             if (!isset($accessList[strtoupper($appName)][strtoupper($module)][strtoupper(ACTION_NAME)])) {
                 $n = substr(ACTION_NAME, 0, 6) == "lookup" ? 1 : 0;
                 $n2 = substr(ACTION_NAME, 0, 6) == "combox" ? 1 : 0;
                 $n3 = substr($module, 0, 7) == "MisAuto" ? 1 : 0;
                 if ($n || $n2 || $n3) {
                     $_SESSION[strtolower(MODULE_NAME . '_' . ACTION_NAME)] = true;
                 } else {
                     $_SESSION[strtolower(MODULE_NAME . '_' . ACTION_NAME)] = false;
                     return false;
                 }
             } else {
                 $p = explode("-", $accessList[strtoupper($appName)][strtoupper($module)][strtoupper(ACTION_NAME)]);
                 if ($p[1] != 5) {
                     //过滤禁止权限
                     $_SESSION[strtolower(MODULE_NAME . '_' . ACTION_NAME)] = $p[1];
                 } else {
                     return false;
                 }
             }
         } else {
             //管理员无需认证
             $_SESSION['a'] = true;
             return true;
         }
     }
     return true;
 }
开发者ID:tmlsoft,项目名称:main,代码行数:91,代码来源:RBAC.class.php


注:本文中的RBAC::checkAccess方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。