KYLIN-1909 Fix cube list ACL bug. Signed-off-by: lidongsjtu <lid...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/f41f8c55 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/f41f8c55 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/f41f8c55 Branch: refs/heads/1.5.x-CDH5.7 Commit: f41f8c55614172134105441f864b0c8a1f55583e Parents: a863ae5 Author: sanjulian <julian....@hotmail.com> Authored: Mon Aug 22 12:49:16 2016 +0800 Committer: lidongsjtu <lid...@apache.org> Committed: Mon Aug 22 13:31:04 2016 +0800 ---------------------------------------------------------------------- .../kylin/rest/controller/CubeController.java | 23 ++++++++++++++------ .../apache/kylin/rest/service/CubeService.java | 20 ----------------- 2 files changed, 16 insertions(+), 27 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/f41f8c55/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java index 57b0965..ecdab40 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java +++ b/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java @@ -20,12 +20,7 @@ package org.apache.kylin.rest.controller; import java.io.IOException; import java.net.UnknownHostException; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; +import java.util.*; import org.apache.commons.lang.StringUtils; import org.apache.kylin.common.util.JsonUtil; @@ -98,7 +93,21 @@ public class CubeController extends BasicController { @RequestMapping(value = "", method = { RequestMethod.GET }) @ResponseBody public List<CubeInstance> getCubes(@RequestParam(value = "cubeName", required = false) String cubeName, @RequestParam(value = "modelName", required = false) String modelName, @RequestParam(value = "projectName", required = false) String projectName, @RequestParam(value = "limit", required = false) Integer limit, @RequestParam(value = "offset", required = false) Integer offset) { - return cubeService.getCubes(cubeName, projectName, modelName, limit, offset); + List<CubeInstance> cubes; + cubes = cubeService.listAllCubes(cubeName, projectName, modelName); + + int climit = (null == limit) ? cubes.size() : limit; + int coffset = (null == offset) ? 0 : offset; + + if (cubes.size() <= coffset) { + return Collections.emptyList(); + } + + if ((cubes.size() - coffset) < climit) { + return cubes.subList(coffset, cubes.size()); + } + + return cubes.subList(coffset, coffset + climit); } @RequestMapping(value = "validEncodings", method = { RequestMethod.GET }) http://git-wip-us.apache.org/repos/asf/kylin/blob/f41f8c55/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java b/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java index cfb4cf8..4cd527c 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java +++ b/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java @@ -128,26 +128,6 @@ public class CubeService extends BasicService { return filterCubes; } - @PostFilter(Constant.ACCESS_POST_FILTER_READ) - public List<CubeInstance> getCubes(final String cubeName, final String projectName, final String modelName, final Integer limit, final Integer offset) { - - List<CubeInstance> cubes; - cubes = listAllCubes(cubeName, projectName, modelName); - - int climit = (null == limit) ? cubes.size() : limit; - int coffset = (null == offset) ? 0 : offset; - - if (cubes.size() <= coffset) { - return Collections.emptyList(); - } - - if ((cubes.size() - coffset) < climit) { - return cubes.subList(coffset, cubes.size()); - } - - return cubes.subList(coffset, coffset + climit); - } - @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'MANAGEMENT')") public CubeInstance updateCubeCost(CubeInstance cube, int cost) throws IOException {