DRILL-6017: Fix for SHUTDOWN button being visible for non Admin users closes #1064
Project: http://git-wip-us.apache.org/repos/asf/drill/repo Commit: http://git-wip-us.apache.org/repos/asf/drill/commit/b3467957 Tree: http://git-wip-us.apache.org/repos/asf/drill/tree/b3467957 Diff: http://git-wip-us.apache.org/repos/asf/drill/diff/b3467957 Branch: refs/heads/master Commit: b34679579930f2643837e0c59dbe743b80b2f7e2 Parents: c7872dc Author: karthik <kmanivan...@maprtech.com> Authored: Thu Dec 7 09:43:24 2017 +0530 Committer: Arina Ielchiieva <arina.yelchiy...@gmail.com> Committed: Sat Dec 9 15:50:33 2017 +0200 ---------------------------------------------------------------------- .../drill/exec/server/rest/DrillRoot.java | 14 ++++---- .../java-exec/src/main/resources/rest/index.ftl | 36 +++++++++++--------- 2 files changed, 27 insertions(+), 23 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/drill/blob/b3467957/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/DrillRoot.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/DrillRoot.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/DrillRoot.java index da1d2fb..94e607c 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/DrillRoot.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/DrillRoot.java @@ -189,7 +189,7 @@ public class DrillRoot { String adminUsers = ExecConstants.ADMIN_USERS_VALIDATOR.getAdminUsers(optionManager); String adminUserGroups = ExecConstants.ADMIN_USER_GROUPS_VALIDATOR.getAdminUserGroups(optionManager); - final boolean shouldShowUserInfo = isUserLoggedIn && + final boolean shouldShowAdminInfo = isUserLoggedIn && ((DrillUserPrincipal)sc.getUserPrincipal()).isAdminUser(); for (DrillbitEndpoint endpoint : work.getContext().getAvailableBits()) { @@ -202,11 +202,11 @@ public class DrillRoot { drillbits.add(drillbit); } logger.debug("Admin info: user: " + adminUsers + " user group: " + adminUserGroups + - " userLoggedIn " + isUserLoggedIn + " shouldShowUserInfo: " + shouldShowUserInfo ); + " userLoggedIn " + isUserLoggedIn + " shouldShowAdminInfo: " + shouldShowAdminInfo ); return new ClusterInfo(drillbits, currentVersion, mismatchedVersions, userEncryptionEnabled, bitEncryptionEnabled, processUser, processUserGroups, adminUsers, - adminUserGroups, shouldShowUserInfo, QueueInfo.build(dbContext.getResourceManager())); + adminUserGroups, shouldShowAdminInfo, QueueInfo.build(dbContext.getResourceManager())); } public Response setResponse(Map entity) { @@ -327,7 +327,7 @@ public static class ClusterInfo { private final String adminUserGroups; private final String processUser; private final String processUserGroups; - private final boolean shouldShowUserInfo; + private final boolean shouldShowAdminInfo; private final QueueInfo queueInfo; @JsonCreator @@ -340,7 +340,7 @@ public static class ClusterInfo { String processUserGroups, String adminUsers, String adminUserGroups, - boolean shouldShowUserInfo, + boolean shouldShowAdminInfo, QueueInfo queueInfo) { this.drillbits = Sets.newTreeSet(drillbits); this.currentVersion = currentVersion; @@ -351,7 +351,7 @@ public static class ClusterInfo { this.processUserGroups = processUserGroups; this.adminUsers = adminUsers; this.adminUserGroups = adminUserGroups; - this.shouldShowUserInfo = shouldShowUserInfo; + this.shouldShowAdminInfo = shouldShowAdminInfo; this.queueInfo = queueInfo; } @@ -379,7 +379,7 @@ public static class ClusterInfo { public String getAdminUserGroups() { return adminUserGroups; } - public boolean shouldShowUserInfo() { return shouldShowUserInfo; } + public boolean shouldShowAdminInfo() { return shouldShowAdminInfo; } public QueueInfo queueInfo() { return queueInfo; } } http://git-wip-us.apache.org/repos/asf/drill/blob/b3467957/exec/java-exec/src/main/resources/rest/index.ftl ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/resources/rest/index.ftl b/exec/java-exec/src/main/resources/rest/index.ftl index 74425d6..18be7a9 100644 --- a/exec/java-exec/src/main/resources/rest/index.ftl +++ b/exec/java-exec/src/main/resources/rest/index.ftl @@ -79,9 +79,11 @@ </span> </td> <td id="status" >${drillbit.getState()}</td> - <td> - <button type="button" id="shutdown" onClick="shutdown('${drillbit.getAddress()}',$(this));"> SHUTDOWN </button> - </td> + <#if model.shouldShowAdminInfo()> + <td> + <button type="button" id="shutdown" onClick="shutdown('${drillbit.getAddress()}',$(this));"> SHUTDOWN </button> + </td> + </#if> <td id="queriesCount"> </td> </tr> <#assign i = i + 1> @@ -112,7 +114,7 @@ </div> </div> - <#if model.shouldShowUserInfo()> + <#if model.shouldShowAdminInfo()> <div class="row"> <div class="col-md-12"> <h3>User Info </h3> @@ -266,18 +268,20 @@ } }); } - function shutdown(address,button) { - url = "http://"+address+":"+portNum+"/gracefulShutdown"; - var result = $.ajax({ - type: 'POST', - url: url, - contentType : 'text/plain', - complete: function(data) { - alert(data.responseJSON["response"]); - button.prop('disabled',true).css('opacity',0.5); - } - }); - } + <#if model.shouldShowAdminInfo()> + function shutdown(address,button) { + url = "http://"+address+":"+portNum+"/gracefulShutdown"; + var result = $.ajax({ + type: 'POST', + url: url, + contentType : 'text/plain', + complete: function(data) { + alert(data.responseJSON["response"]); + button.prop('disabled',true).css('opacity',0.5); + } + }); + } + </#if> </script> </#macro>