You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ni...@apache.org on 2019/03/04 05:41:02 UTC

[ranger] branch master updated: RANGER-2339: UI changes for User role users should also have access to Security Zone

This is an automated email from the ASF dual-hosted git repository.

ni3galave pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/master by this push:
     new 8d5659c  RANGER-2339: UI changes for User role users should also have access to Security Zone
8d5659c is described below

commit 8d5659cb2789d971a67380df4d21c5da67ce9425
Author: Nitin Galave <ni...@apache.org>
AuthorDate: Mon Feb 25 12:32:42 2019 +0530

    RANGER-2339: UI changes for User role users should also have access to Security Zone
---
 .../main/java/org/apache/ranger/biz/XUserMgr.java  |  2 --
 .../org/apache/ranger/rest/SecurityZoneREST.java   |  2 +-
 .../src/main/webapp/scripts/models/RangerZone.js   |  3 ++-
 .../src/main/webapp/scripts/views/common/TopNav.js |  2 +-
 .../scripts/views/policies/RangerPolicyForm.js     |  3 ++-
 .../views/policies/RangerPolicyTableLayout.js      |  3 ++-
 .../scripts/views/policymanager/ServiceLayout.js   |  2 +-
 .../scripts/views/security_zone/SecurityZone.js    |  3 +++
 security-admin/src/main/webapp/styles/xa.css       |  4 +--
 .../main/webapp/templates/common/TopNav_tmpl.html  |  4 +--
 .../templates/security_zone/SecurityZone_tmpl.html | 30 +++++++++++++---------
 11 files changed, 34 insertions(+), 24 deletions(-)

diff --git a/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java b/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
index db3d3d6..fc40917 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
@@ -271,14 +271,12 @@ public class XUserMgr extends XUserMgrBase {
 						createOrUpdateUserPermisson(vXPortalUser, moduleNameId.get(RangerConstants.MODULE_KEY_MANAGER), isCreate);
 						createOrUpdateUserPermisson(vXPortalUser, moduleNameId.get(RangerConstants.MODULE_REPORTS), isCreate);
 						createOrUpdateUserPermisson(vXPortalUser, moduleNameId.get(RangerConstants.MODULE_RESOURCE_BASED_POLICIES), isCreate);
-						createOrUpdateUserPermisson(vXPortalUser, moduleNameId.get(RangerConstants.MODULE_SECURITY_ZONE), isCreate);
 					} else if (role.equals(RangerConstants.ROLE_KEY_ADMIN_AUDITOR)) {
 						createOrUpdateUserPermisson(vXPortalUser, moduleNameId.get(RangerConstants.MODULE_AUDIT), isCreate);
 						createOrUpdateUserPermisson(vXPortalUser, moduleNameId.get(RangerConstants.MODULE_USER_GROUPS), isCreate);
 						createOrUpdateUserPermisson(vXPortalUser, moduleNameId.get(RangerConstants.MODULE_KEY_MANAGER), isCreate);
 						createOrUpdateUserPermisson(vXPortalUser, moduleNameId.get(RangerConstants.MODULE_REPORTS), isCreate);
 						createOrUpdateUserPermisson(vXPortalUser, moduleNameId.get(RangerConstants.MODULE_RESOURCE_BASED_POLICIES), isCreate);
-						createOrUpdateUserPermisson(vXPortalUser, moduleNameId.get(RangerConstants.MODULE_SECURITY_ZONE), isCreate);
 					} else if (role.equals(RangerConstants.ROLE_ADMIN_AUDITOR)) {
 						createOrUpdateUserPermisson(vXPortalUser, moduleNameId.get(RangerConstants.MODULE_REPORTS), isCreate);
 						createOrUpdateUserPermisson(vXPortalUser, moduleNameId.get(RangerConstants.MODULE_RESOURCE_BASED_POLICIES), isCreate);
diff --git a/security-admin/src/main/java/org/apache/ranger/rest/SecurityZoneREST.java b/security-admin/src/main/java/org/apache/ranger/rest/SecurityZoneREST.java
index baded45..b8b8c1b 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/SecurityZoneREST.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/SecurityZoneREST.java
@@ -247,7 +247,7 @@ public class SecurityZoneREST {
 	private void ensureAdminAccess(){
 		if(!bizUtil.isAdmin()){
 			String userName = bizUtil.getCurrentUserLoginId();
-			throw restErrorUtil.createRESTException(HttpServletResponse.SC_FORBIDDEN, "Ranger Securtiy Zone is not accessible for user '" + userName + "'.", true);
+			throw restErrorUtil.createRESTException(HttpServletResponse.SC_FORBIDDEN, "Ranger Security Zone is not accessible for user '" + userName + "'.", true);
 		}
 	}
 
diff --git a/security-admin/src/main/webapp/scripts/models/RangerZone.js b/security-admin/src/main/webapp/scripts/models/RangerZone.js
index 4b667d5..4f99c83 100644
--- a/security-admin/src/main/webapp/scripts/models/RangerZone.js
+++ b/security-admin/src/main/webapp/scripts/models/RangerZone.js
@@ -163,7 +163,8 @@ define(function(require) {
                         dataType: 'json',
                         data: function(term, page) {
                             return {
-                                name: term
+                                name: term,
+                                isVisible : XAEnums.VisibilityStatus.STATUS_VISIBLE.value,
                             };
                         },
                         results: function(data, page) {
diff --git a/security-admin/src/main/webapp/scripts/views/common/TopNav.js b/security-admin/src/main/webapp/scripts/views/common/TopNav.js
index e08d4a2..9d4f0a3 100644
--- a/security-admin/src/main/webapp/scripts/views/common/TopNav.js
+++ b/security-admin/src/main/webapp/scripts/views/common/TopNav.js
@@ -37,7 +37,7 @@ define(function(require){
     	templateHelpers : function(){
         return{
                 showPermissionTab : XAUtil.isAuditorOrSystemAdmin(SessionMgr),
-                isZoneAdministration : (SessionMgr.isSystemAdmin()) ? true : false,
+                hideSecurityZoneTab : (SessionMgr.isKeyAdmin() || SessionMgr.isKMSAuditor()) ? true : false,
 		}
     	},
         
diff --git a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js
index 50d2237..22cc7d1 100644
--- a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js
+++ b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js
@@ -495,7 +495,8 @@ define(function(require){
                 policyLabel= this.model.get('policyLabels').split(',');
                 this.model.set('policyLabels', policyLabel);
             }
-            if(!_.isUndefined(App.vZone) && App.vZone && App.vZone.vZoneName){
+            if(!_.isUndefined(App.vZone) && App.vZone.vZoneName
+                    && this.rangerService.get('type') !== XAEnums.ServiceType.SERVICE_TAG.label){
                 this.model.set('zoneName', App.vZone.vZoneName);
             }
 			this.model.set('resources',resources);
diff --git a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyTableLayout.js b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyTableLayout.js
index 2f5b8bb..7369a3b 100644
--- a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyTableLayout.js
+++ b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyTableLayout.js
@@ -129,7 +129,8 @@ define(function(require){
 			if(!_.isUndefined(policyType)){
 				this.collection.queryParams['policyType'] = policyType;
 			}
-            if(!_.isUndefined(App.vZone) && App.vZone && App.vZone.vZoneName){
+            if(!_.isUndefined(App.vZone) && App.vZone.vZoneName
+                    && this.rangerService.get('type') !== XAEnums.ServiceType.SERVICE_TAG.label){
                 this.collection.queryParams['zoneName'] = App.vZone.vZoneName;
             }
 			this.collection.fetch({
diff --git a/security-admin/src/main/webapp/scripts/views/policymanager/ServiceLayout.js b/security-admin/src/main/webapp/scripts/views/policymanager/ServiceLayout.js
index f9818d6..d2d1627 100644
--- a/security-admin/src/main/webapp/scripts/views/policymanager/ServiceLayout.js
+++ b/security-admin/src/main/webapp/scripts/views/policymanager/ServiceLayout.js
@@ -48,7 +48,7 @@ define(function(require){
                 serviceDefs : this.componentCollectionModels(App.vZone.vZoneName),
                 services    : this.componentServicesModels(App.vZone.vZoneName),
                 showImportExportBtn : (SessionMgr.isUser() || XAUtil.isAuditorOrKMSAuditor(SessionMgr)) ? false : true,
-                isZoneAdministration : (SessionMgr.isSystemAdmin() && this.type !== XAEnums.ServiceType.SERVICE_TAG.label) ? true : false,
+                isZoneAdministration : ((SessionMgr.isSystemAdmin()|| SessionMgr.isUser() || SessionMgr.isAuditor()) && this.type !== XAEnums.ServiceType.SERVICE_TAG.label) ? true : false,
 			};
 			
 		},
diff --git a/security-admin/src/main/webapp/scripts/views/security_zone/SecurityZone.js b/security-admin/src/main/webapp/scripts/views/security_zone/SecurityZone.js
index 9630db8..a1e9716 100644
--- a/security-admin/src/main/webapp/scripts/views/security_zone/SecurityZone.js
+++ b/security-admin/src/main/webapp/scripts/views/security_zone/SecurityZone.js
@@ -33,6 +33,7 @@ define(function(require) {
     var App = require('App');
     var RangerZone = require('models/RangerZone');
     var vzoneAdministrationDetail = require('views/security_zone/ZoneAdministration');
+    var SessionMgr = require('mgrs/SessionMgr');
 
     var SecurityZone = Backbone.Marionette.Layout.extend({
         template: SecurityZoneTmpl,
@@ -42,10 +43,12 @@ define(function(require) {
             var zoneList = this.collection.pluck('name');
             this.zoneModel = this.getZoneModel();
             var zoneModelName = (this.zoneModel && this.zoneModel.get('name')) ? _.escape(this.zoneModel.get('name')) : '';
+            var isZoneAdministration = (SessionMgr.isSystemAdmin()) ? true : false;
             return {
                 zoneList: zoneList,
                 zoneModel: this.zoneModel,
                 zoneModelName: zoneModelName,
+                isZoneAdministration:isZoneAdministration,
             };
         },
 
diff --git a/security-admin/src/main/webapp/styles/xa.css b/security-admin/src/main/webapp/styles/xa.css
index 1e144d3..a09e3be 100644
--- a/security-admin/src/main/webapp/styles/xa.css
+++ b/security-admin/src/main/webapp/styles/xa.css
@@ -2537,14 +2537,14 @@ textarea:read-only{
   margin-bottom: 15px;
   margin-top: 10px;
 }
-.security-details-defult {
+.security-details-default {
   padding: 15px;
   width: 70%;
   float: left;
   min-height: 500px;
   border-left: 1px #CCC solid;
 }
-.defult-zone {
+.default-zone {
   position: absolute;
   top: 50%;
   left: 60%;
diff --git a/security-admin/src/main/webapp/templates/common/TopNav_tmpl.html b/security-admin/src/main/webapp/templates/common/TopNav_tmpl.html
index b63ae90..22df5cb 100644
--- a/security-admin/src/main/webapp/templates/common/TopNav_tmpl.html
+++ b/security-admin/src/main/webapp/templates/common/TopNav_tmpl.html
@@ -44,7 +44,7 @@
 				{{/hasAccessToTab}}
 			</ul>
 		</li>
-        {{#isZoneAdministration}}
+        {{^hideSecurityZoneTab}}
             <li>
 				<a href="#!/zones/zone/list" id="nav6">
 					<span class="icon-stack zone-icon">
@@ -53,7 +53,7 @@
 					</span>{{tt 'h.securityZone'}}
 				</a>
             </li>
-        {{/isZoneAdministration}}
+        {{/hideSecurityZoneTab}}
 		<li class="dropdown">
 			<a href="javascript:;" id="nav5"><i class="icon-gear"></i> {{tt 'h.settings'}} </a>
 			<ul class="dropdown-menu">
diff --git a/security-admin/src/main/webapp/templates/security_zone/SecurityZone_tmpl.html b/security-admin/src/main/webapp/templates/security_zone/SecurityZone_tmpl.html
index 75c0b90..f0b2572 100644
--- a/security-admin/src/main/webapp/templates/security_zone/SecurityZone_tmpl.html
+++ b/security-admin/src/main/webapp/templates/security_zone/SecurityZone_tmpl.html
@@ -20,7 +20,9 @@
         <div class="listData">
             <div class="clearfix row-margin-bottom">
                 <h4 class="pull-left">Security Zones</h4>
-                <a href="#!/zones/create" class="btn-add-security pull-right btn btn-default btn-small" title="Create zone"><i class="icon-plus"></i></a>
+                {{#if isZoneAdministration}}
+                    <a href="#!/zones/create" class="btn-add-security pull-right btn btn-default btn-small" title="Create zone"><i class="icon-plus"></i></a>
+                {{/if}}
             </div>
             <div class="clearfix">
                 <input type="text" class="security-search" data-id="zoneSearch" placeholder="Search">
@@ -60,13 +62,15 @@
                 <div class="span7">
                     <h2 data-id="zoneName">{{{zoneModelName}}}</h2>
                 </div>
-                <div class="span4">
-                    <div class="btn-group-zone pull-right">
-                        <!--<button class="btn btn-default" data-id="zoneAdministrationDetail"><i class="icon-info"></i> Details</button>-->
-                        <a type="button" href='#!/zones/edit/{{this.zoneModel.attributes.id}}' class="btn btn-default" data-id="editZone"><i class="icon-edit"></i>Edit</a>
-                        <button class="btn btn-danger" data-id="deleteZone"><i class="icon-trash"></i>Delete</button>
+                {{#if isZoneAdministration}}
+                    <div class="span4">
+                        <div class="btn-group-zone pull-right">
+                            <!--<button class="btn btn-default" data-id="zoneAdministrationDetail"><i class="icon-info"></i> Details</button>-->
+                            <a type="button" href='#!/zones/edit/{{this.zoneModel.attributes.id}}' class="btn btn-default" data-id="editZone"><i class="icon-edit"></i>Edit</a>
+                            <button class="btn btn-danger" data-id="deleteZone"><i class="icon-trash"></i>Delete</button>
+                        </div>
                     </div>
-                </div>
+                {{/if}}
             </div>
             <div class="row-fluid">
                 <div class="span12">
@@ -88,11 +92,13 @@
             </div>
         </div>
     {{else}}
-        <div class="security-details-defult">
-            <div class="defult-zone">
-                <img alt="Avatar" class="zoneImg" src="images/defult_zone.png">
-                <a href="#!/zones/create" class="btn-add-security2 btn-large pull-right" title="Click here to Create new Zone"><i class="icon-plus"></i> Click here to Create new Zone</a>
+        {{#if isZoneAdministration}}
+            <div class="security-details-default">
+                <div class="default-zone">
+                    <img alt="Avatar" class="zoneImg" src="images/defult_zone.png">
+                    <a href="#!/zones/create" class="btn-add-security2 btn-large pull-right" title="Click here to Create new Zone"><i class="icon-plus"></i> Click here to Create new Zone</a>
+                </div>
             </div>
-        </div>
+        {{/if}}
     {{/if}}
 </div>
\ No newline at end of file