From 63ab9d6fce4c39f1f943d146389b1105e009da07 Mon Sep 17 00:00:00 2001 From: sanjulian Date: Mon, 22 Aug 2016 12:49:16 +0800 Subject: [PATCH] Fix cube list ACL bug. --- .../kylin/rest/controller/CubeController.java | 23 +++++++++++++++------- .../org/apache/kylin/rest/service/CubeService.java | 20 ------------------- 2 files changed, 16 insertions(+), 27 deletions(-) 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 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 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 }) 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 getCubes(final String cubeName, final String projectName, final String modelName, final Integer limit, final Integer offset) { - - List 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 { -- 2.8.1