From 88f3082c4de48aa81ed7bf94e73f441b8146c60d Mon Sep 17 00:00:00 2001 From: "peng.jianhua" Date: Mon, 4 Dec 2017 14:13:38 +0800 Subject: [PATCH 1/1] KYLIN-3074-branch-2.2.x --- .../apache/kylin/rest/security/AclPermissionFactory.java | 11 +++++++++-- .../apache/kylin/rest/security/ExternalAclProvider.java | 16 ++++++++-------- webapp/app/partials/cubes/cubes.html | 4 ++-- webapp/app/partials/models/models_tree.html | 2 +- 4 files changed, 20 insertions(+), 13 deletions(-) diff --git a/server-base/src/main/java/org/apache/kylin/rest/security/AclPermissionFactory.java b/server-base/src/main/java/org/apache/kylin/rest/security/AclPermissionFactory.java index d66240361..aeba5fba1 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/security/AclPermissionFactory.java +++ b/server-base/src/main/java/org/apache/kylin/rest/security/AclPermissionFactory.java @@ -45,8 +45,15 @@ public class AclPermissionFactory extends DefaultPermissionFactory { Object fieldValue = field.get(null); if (Permission.class.isAssignableFrom(fieldValue.getClass())) { - // Found a Permission static field - permissions.add((Permission) fieldValue); + Permission perm = (Permission) fieldValue; + String permissionName = field.getName(); + if (permissionName.equals(AclPermissionType.ADMINISTRATION) + || permissionName.equals(AclPermissionType.MANAGEMENT) + || permissionName.equals(AclPermissionType.OPERATION) + || permissionName.equals(AclPermissionType.READ)) { + // Found a Permission static field + permissions.add(perm); + } } } catch (Exception ignore) { //ignore on purpose diff --git a/server-base/src/main/java/org/apache/kylin/rest/security/ExternalAclProvider.java b/server-base/src/main/java/org/apache/kylin/rest/security/ExternalAclProvider.java index 395f44d95..9e977d0a3 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/security/ExternalAclProvider.java +++ b/server-base/src/main/java/org/apache/kylin/rest/security/ExternalAclProvider.java @@ -52,22 +52,22 @@ abstract public class ExternalAclProvider { // ============================================================================ - public final static String CUBE_ADMIN = "CUBE ADMIN"; - public final static String CUBE_EDIT = "CUBE EDIT"; - public final static String CUBE_OPERATION = "CUBE OPERATION"; - public final static String CUBE_QUERY = "CUBE QUERY"; + public final static String ADMINISTRATION = "ADMIN"; + public final static String MANAGEMENT = "MANAGEMENT"; + public final static String OPERATION = "OPERATION"; + public final static String READ = "QUERY"; // used by ranger ExternalAclProvider public static String transformPermission(Permission p) { String permString = null; if (AclPermission.ADMINISTRATION.equals(p)) { - permString = CUBE_ADMIN; + permString = ADMINISTRATION; } else if (AclPermission.MANAGEMENT.equals(p)) { - permString = CUBE_EDIT; + permString = MANAGEMENT; } else if (AclPermission.OPERATION.equals(p)) { - permString = CUBE_OPERATION; + permString = OPERATION; } else if (AclPermission.READ.equals(p)) { - permString = CUBE_QUERY; + permString = READ; } else { permString = p.getPattern(); } diff --git a/webapp/app/partials/cubes/cubes.html b/webapp/app/partials/cubes/cubes.html index 38c9342bd..166e067a3 100644 --- a/webapp/app/partials/cubes/cubes.html +++ b/webapp/app/partials/cubes/cubes.html @@ -84,7 +84,7 @@