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); }