Esempio n. 1
0
 public function get($f3)
 {
     global $smarty;
     $privilegeKey = $f3->get('GET[privilege]');
     $privilegeItem = array();
     if (!empty($privilegeKey)) {
         if (UserAdminService::privilegeAll == $privilegeKey) {
             $privilegeItem['meta_name'] = '最高权限';
             $privilegeItem['meta_desc'] = '系统的最高权限';
         } else {
             $metaPrivilegeService = new MetaPrivilegeService();
             $privilege = $metaPrivilegeService->loadPrivilegeItem($privilegeKey);
             $privilegeItem = $privilege->toArray();
         }
     }
     $smarty->assign('privilegeItem', $privilegeItem);
     $smarty->assign('refer_url', RouteHelper::getRefer());
     $smarty->display('error_privilege.tpl');
 }
Esempio n. 2
0
 /**
  * 要求某个权限才能执行
  *
  * @param string $needPrivilege
  * @param bool   $isAjax 是否是 ajax 请求
  *
  */
 protected function requirePrivilege($needPrivilege, $isAjax = false)
 {
     if (!$this->hasPrivilege($needPrivilege)) {
         goto out_fail;
     }
     return;
     // 成功从这里返回
     out_fail:
     // 失败,reroute 到错误页面
     if ($isAjax) {
         $needPrivilegeName = $needPrivilege;
         $metaPrivilegeService = new MetaPrivilegeService();
         $privilege = $metaPrivilegeService->loadPrivilegeItem($needPrivilege, 600);
         //缓存 10 分钟
         if (!$privilege->isEmpty()) {
             $needPrivilegeName = $privilege['meta_name'] ?: $needPrivilegeName;
         }
         Ajax::header();
         echo Ajax::buildResult(-1, '没有权限:' . $needPrivilegeName, null);
         die;
     }
     RouteHelper::reRoute($this, RouteHelper::makeUrl('/Error/Privilege', array('privilege' => $needPrivilege), true));
 }