public function iframeRemoveAction()
 {
     $managerId = Request::getGET('manager-id', 0);
     $managerInfo = RootManagerInterface::getById(array('id' => $managerId));
     if (empty($managerInfo)) {
         $this->renderIframeError('管理员不存在!');
     }
     $userInfo = UserCommonInterface::getById(array('id' => $managerInfo['user_id']));
     $this->renderIframe(array('userInfo' => $userInfo), 'manager/iframe/remove_path.php');
 }
 /**
  * 权限控制
  *
  * @param   $params array(
  *              'user_id',  // 用户id
  *              'path',     // 权限路径
  *          )
  * @return  bool
  * @throws  LibraryException
  */
 public static function allowed($params)
 {
     $userId = self::get('user_id', $params, 0, TYPE_INT_GT0, true);
     $path = self::get('path', $params, '', TYPE_STR_Y, true);
     if (empty($path)) {
         Logger::warn('interface', '权限校验时,传入了空权限,系统默认返回true!');
         return true;
     }
     // 校验权限是否存在
     $existed = RootPermissionInterface::findPath(array('path' => $path, 'from_cache' => true));
     if (!$existed) {
         Logger::warn('interface', "权限{$path}不存在!");
         return false;
     }
     $managerId = RootManagerInterface::getEnabledId(array('user_id' => $userId, 'from_cache' => true));
     if (empty($managerId)) {
         return false;
     }
     $allowed = RootManagerInterface::checkPermission(array('id' => $managerId, 'path' => $path, 'from_cache' => true));
     return empty($allowed) ? false : true;
 }
 public function ajaxAddAction()
 {
     $loginName = Request::getPOST('login-name');
     if (empty($loginName)) {
         $this->renderAjax(1, '请填写登录名!');
     }
     // 校验一个用户
     $userInfo = UserCommonInterface::getByLoginName(array('login_name' => $loginName));
     if (empty($userInfo)) {
         $this->renderAjax(1, "用户 {$loginName} 不存在!");
     }
     // 是否已经添加
     $managerInfo = RootManagerInterface::getByField(array('user_id' => $userInfo['id']));
     if (!empty($managerInfo)) {
         $this->renderAjax(1, "用户 {$loginName} 已经是管理员!");
     }
     // 添加用户到管理员
     RootManagerInterface::save(array('login_name' => $loginName));
     $this->setNotice(FrameworkVars::NOTICE_SUCCESS, '添加成功!');
     $this->renderAjax(0);
 }
 public static function syncAllToRedis()
 {
     $managerList = RootManagerInterface::getList(array('field' => 'id'));
     if (empty($managerList)) {
         return;
     }
     $managerIds = array_column($managerList, 'id');
     $retList = self::getList();
     $hash = array();
     foreach ($retList as $row) {
         $hash[$row['manager_id']][] = $row['path'];
     }
     // 对每个权限组进行排序
     foreach ($hash as $mId => $val) {
         sort($hash[$mId], SORT_STRING);
     }
     $redis = RedisClient::getInstance(RedisConfig::$SERVER_COMMON);
     $keys = $redis->keys(RedisKeys::ROOT_PATH_SET_ . '*');
     $redis->delete($keys);
     // 保存到redis
     foreach ($managerIds as $mId) {
         $pathSet = Arr::get($mId, $hash, array());
         $key = RedisKeys::ROOT_PATH_SET_ . $mId;
         foreach ($pathSet as $val) {
             $redis->sAdd($key, $val);
         }
     }
 }
 public function ajaxDeleteAction()
 {
     $managerId = Request::getPOST('manager-id', 0);
     // 校验
     $managerInfo = RootManagerInterface::getById(array('id' => $managerId));
     if (empty($managerInfo)) {
         $this->renderAjax(1, '信息不存在!');
     }
     // 删除
     RootManagerInterface::deleteById(array('id' => $managerId));
     $this->setNotice(FrameworkVars::NOTICE_SUCCESS, '删除成功!');
     $this->renderAjax(0);
 }