You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by pr...@apache.org on 2018/03/07 05:44:21 UTC

[1/3] ranger git commit: RANGER-2008: Policy evaluation is failing for multiline policy conditions.

Repository: ranger
Updated Branches:
  refs/heads/master 1d4afbe57 -> 8f1625c26


RANGER-2008: Policy evaluation is failing for multiline policy conditions.

Signed-off-by: pradeep <pr...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/2109fe04
Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/2109fe04
Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/2109fe04

Branch: refs/heads/master
Commit: 2109fe04db224ae91cd9aa98c66cef0af4116d63
Parents: 1d4afbe
Author: ni3galave <ni...@gmail.com>
Authored: Tue Mar 6 15:10:49 2018 +0530
Committer: pradeep <pr...@apache.org>
Committed: Wed Mar 7 09:20:59 2018 +0530

----------------------------------------------------------------------
 .../webapp/scripts/views/policies/PermissionList.js  | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ranger/blob/2109fe04/security-admin/src/main/webapp/scripts/views/policies/PermissionList.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/views/policies/PermissionList.js b/security-admin/src/main/webapp/scripts/views/policies/PermissionList.js
index 2d88b02..194f6b6 100644
--- a/security-admin/src/main/webapp/scripts/views/policies/PermissionList.js
+++ b/security-admin/src/main/webapp/scripts/views/policies/PermissionList.js
@@ -651,7 +651,7 @@ define(function(require) {
 					emptytext : 'Add Conditions',
 					value : this.conditions,
 					display: function(value) {
-						var continue_ = false, i = 0;
+						var continue_ = false, i = 0, cond = [];
 						if(!value) {
 							$(this).empty();
 							return; 
@@ -666,19 +666,18 @@ define(function(require) {
 									return ''; 
 								}
 								//Add label for policy condition
-								var pcond = _.findWhere(that.multiLinecond, { 'name': name})
+								var pcond = _.findWhere(that.multiLinecond, { 'name': name});
 								if(!_.isUndefined(pcond) && !_.isUndefined(pcond['evaluatorOptions']) 
 										&& ! _.isUndefined(pcond['evaluatorOptions']["ui.isMultiline"]) 
 										&& ! _.isUndefined(pcond['evaluatorOptions']['engineName'])){
-									val = 	pcond['evaluatorOptions']['engineName'] + ' Condition'
+									cond.push({ 'type' : name, 'values' : !_.isArray(val) ? [val] : val });
+									val = 	pcond['evaluatorOptions']['engineName'] + ' Condition';
+								} else {
+									cond.push({ 'type' : name, 'values' : !_.isArray(val) ?  val.split(',') : val });
 								}
 								i++;
-                                                                return '<span class="'+label+' white-space-normal" >'+name+' : '+ _.escape(val) + '</span>';
+                                return '<span class="'+label+' white-space-normal" >'+name+' : '+ _.escape(val) + '</span>';
 							});
-							var cond = _.map(value, function(val, name) {
-                                                                return {'type' : name, 'values' : !_.isArray(val) ?  val.split(',') : val};
-							});
-							
 							that.model.set('conditions', cond);
 							$(this).html(html);
 							that.ui.addConditionsSpan.find('i').attr('class', 'icon-pencil');


[2/3] ranger git commit: RANGER-2003: On Report page 'User, Group and Access' details are not shown for policyItem exceeding more than 25 policies

Posted by pr...@apache.org.
RANGER-2003: On Report page 'User, Group and Access' details are not shown for policyItem exceeding more than 25 policies

Signed-off-by: pradeep <pr...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/06bf9171
Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/06bf9171
Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/06bf9171

Branch: refs/heads/master
Commit: 06bf91715310915cc5e124ead572c4ee866b59d3
Parents: 2109fe0
Author: ni3galave <ni...@gmail.com>
Authored: Thu Mar 1 13:53:12 2018 +0530
Committer: pradeep <pr...@apache.org>
Committed: Wed Mar 7 09:21:04 2018 +0530

----------------------------------------------------------------------
 .../scripts/views/reports/UserAccessLayout.js   | 51 ++++++++++++--------
 1 file changed, 30 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ranger/blob/06bf9171/security-admin/src/main/webapp/scripts/views/reports/UserAccessLayout.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/views/reports/UserAccessLayout.js b/security-admin/src/main/webapp/scripts/views/reports/UserAccessLayout.js
index db64ee6..95ee3c7 100644
--- a/security-admin/src/main/webapp/scripts/views/reports/UserAccessLayout.js
+++ b/security-admin/src/main/webapp/scripts/views/reports/UserAccessLayout.js
@@ -122,15 +122,20 @@ define(function(require) {'use strict';
 				var collName = serviceDefName +'PolicyList';
 				this[collName] = new RangerPolicyList();
 				this.defaultPageState = this[collName].state;
-				this.policyCollList.push({ 'collName' : collName, 'serviceDefName' : serviceDefName})
+				this.policyCollList.push({ 'collName' : collName, 'serviceDefName' : serviceDefName});
+				//set subgrid coll for policy item on pagination
+				this.listenTo(this[collName],'change',function(model){
+					this.setSubgridCollForPolicyItems(model);			
+				});
 			},this);
+			
 		},
 		initializeServiceDef : function() {
-			   this.serviceDefList = new RangerServiceDefList();
-			   this.serviceDefList.fetch({
-				   cache : false,
-				   async:false
-			   });
+		   this.serviceDefList = new RangerServiceDefList();
+		   this.serviceDefList.fetch({
+			   cache : false,
+			   async:false
+		   });
 		},	   
 
 		/** all events binding here */
@@ -185,21 +190,7 @@ define(function(require) {'use strict';
 				if(coll.length >= 1 && !that.allowDownload)
 					that.allowDownload = true;
 				_.each(that[collName].models,function(model,ind){
-					if (XAUtil.isMaskingPolicy(model.get('policyType'))) {
-						//'<name>Collection' must be same as subgrid custom column name
-                                                model.attributes.maskCollection = model.get('dataMaskPolicyItems');
-//						Add service type in masking condition
-                                                _.each(model.attributes.dataMaskPolicyItems , function(m){
-                                                        m.type = model.collection.queryParams.serviceType;
-                                                })
-					} else if (XAUtil.isRowFilterPolicy(model.get('policyType'))) {
-                                                model.attributes.rowlvlCollection = model.get('rowFilterPolicyItems');
-					} else {
-						model.attributes.allowCollection = model.get('policyItems');
-					}
-					model.attributes.denyCollection  = model.get('denyPolicyItems');
-					model.attributes.denyExcludeCollection    = model.get('denyExceptions');
-					model.attributes.allowExcludeCollection = model.get('allowExceptions');
+					that.setSubgridCollForPolicyItems(model);
 				});
 
 			});
@@ -928,6 +919,24 @@ define(function(require) {'use strict';
 				}, 1100);
 			}
 		},
+		
+		setSubgridCollForPolicyItems: function(model){
+			if (XAUtil.isMaskingPolicy(model.get('policyType'))) {
+				//'<name>Collection' must be same as subgrid custom column name
+                model.attributes.maskCollection = model.get('dataMaskPolicyItems');
+                //Add service type in masking condition
+                _.each(model.attributes.dataMaskPolicyItems , function(m){
+                    m.type = model.collection.queryParams.serviceType;
+                })
+			} else if (XAUtil.isRowFilterPolicy(model.get('policyType'))) {
+                model.attributes.rowlvlCollection = model.get('rowFilterPolicyItems');
+			} else {
+				model.attributes.allowCollection = model.get('policyItems');
+			}
+			model.attributes.denyCollection  = model.get('denyPolicyItems');
+			model.attributes.denyExcludeCollection    = model.get('denyExceptions');
+			model.attributes.allowExcludeCollection = model.get('allowExceptions');
+		},
 		onShowMorePermissions: function(e){
 						var policyId = $(e.currentTarget).attr('policy-id');
 						var $td = $(e.currentTarget).parents('td');


[3/3] ranger git commit: RANGER-2011:Level 20 resource value is not set on UI in Ranger Edit Policy.

Posted by pr...@apache.org.
RANGER-2011:Level 20 resource value is not set on UI in Ranger Edit Policy.

Signed-off-by: pradeep <pr...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/8f1625c2
Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/8f1625c2
Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/8f1625c2

Branch: refs/heads/master
Commit: 8f1625c26bc0dcd8970867c25b6be0b5afbbcb0f
Parents: 06bf917
Author: ni3galave <ni...@gmail.com>
Authored: Wed Feb 28 19:30:10 2018 +0530
Committer: pradeep <pr...@apache.org>
Committed: Wed Mar 7 09:21:11 2018 +0530

----------------------------------------------------------------------
 .../scripts/models/BackboneFormDataType.js      | 44 ++++++++++++++++++--
 .../scripts/views/policies/RangerPolicyForm.js  | 21 +++++++---
 .../common/ServiceManagerLayout_tmpl.html       |  9 ++--
 3 files changed, 63 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ranger/blob/8f1625c2/security-admin/src/main/webapp/scripts/models/BackboneFormDataType.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/models/BackboneFormDataType.js b/security-admin/src/main/webapp/scripts/models/BackboneFormDataType.js
index 5c06ad9..a928470 100644
--- a/security-admin/src/main/webapp/scripts/models/BackboneFormDataType.js
+++ b/security-admin/src/main/webapp/scripts/models/BackboneFormDataType.js
@@ -89,7 +89,7 @@ define(function(require) {
 								}
 								break;
 							}
-							if($.inArray(v.level, samelevelFieldCreated) >= 0){
+                                                        if($.inArray(v.parent, samelevelFieldCreated) >= 0){
 								return;
 							}
 							
@@ -141,8 +141,12 @@ define(function(require) {
 								if(optionsAttrs.length > 1){
 									var optionsTitle = _.map(optionsAttrs,function(field){ return field.name;});
 									formObj['sameLevelOpts'] = optionsTitle;
-									samelevelFieldCreated.push(v.level);
-									fieldName = 'sameLevel'+v.level;
+                                                                        samelevelFieldCreated.push(v.parent);
+                                                                        if(!_.isUndefined(v.parent)){
+                                                                                fieldName = 'sameLevel'+v.level+''+v.parent;
+                                                                        }else{
+                                                                                fieldName = 'sameLevel'+v.level;
+                                                                        }
 									formObj['title'] = '';
 									formObj['resourcesAtSameLevel'] = true;
 									
@@ -182,6 +186,7 @@ define(function(require) {
 							formObj['recursiveSupport'] = v.recursiveSupported;
 							formObj['name'] = v.name;
 							formObj['editorAttrs'] = {'data-placeholder': v.label };
+                                                        formObj.fieldAttrs = { 'data-name' : 'field-'+v.name, 'parent' : v.parent };
 							if(!_.isUndefined(v.lookupSupported) && v.lookupSupported ){
 								var options = {
 										'containerCssClass' : v.name,
@@ -196,6 +201,39 @@ define(function(require) {
 								form.initilializePathPlugin = true;
 							}
 							formObj['initilializePathPlugin'] = true;
+                                                        var optionsAttrs = [] ,parentResource;
+                                                                if(!_.isUndefined(v.level)){
+                                                                        optionsAttrs = _.filter(config,function(field){
+                                                                                if(field.level == v.level && field.parent == v.parent){
+                                                                                        return field;
+                                                                                }
+                                                                        });
+                                                                }
+                                                                var resourceDef = _.findWhere(optionsAttrs,{'name':v.name});
+                                                                //for parent leftnode status
+                                                                if(v.parent){
+                                                                        parentResource = _.findWhere(config ,{'name':v.parent});
+                                                                }
+                                                                //show only required resources in acccess policy in order to show their access types
+                                                                if(!_.isUndefined(v.parent) && !_.isEmpty(v.parent)
+                                                                                && parentResource.isValidLeaf){
+                                                                        optionsAttrs.unshift({'level':v.level, name:'none',label:'none'});
+                                                                }
+                                                                if(optionsAttrs.length > 1){
+                                                                        var optionsTitle = _.map(optionsAttrs,function(field){ return field.name;});
+                                                                        formObj['sameLevelOpts'] = optionsTitle;
+                                                                        samelevelFieldCreated.push(v.parent);
+                                                                        if(!_.isUndefined(v.parent)){
+                                                                                fieldName = 'sameLevel'+v.level+''+v.parent;
+                                                                        }else{
+                                                                                fieldName = 'sameLevel'+v.level;
+                                                                        }
+                                                                        formObj['title'] = '';
+                                                                        formObj['resourcesAtSameLevel'] = true;
+
+                                                                        // formView is used to listen form events
+                                                                        formObj['formView'] = form;
+                                                                }
 							break;
 						case 'password':formObj.type = 'Password';break;
 						default:formObj.type = 'Text';

http://git-wip-us.apache.org/repos/asf/ranger/blob/8f1625c2/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js
----------------------------------------------------------------------
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 c4eef7a..04dad2e 100644
--- a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js
+++ b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js
@@ -214,7 +214,7 @@ define(function(require){
 				_.each(this.model.get('resources'),function(obj,key){
 					var resourceDef = _.findWhere(resourceDefList,{'name':key}),
 					sameLevelResourceDef = [], parentResource ;
-					sameLevelResourceDef = _.where(resourceDefList, {'level': resourceDef.level});
+					sameLevelResourceDef = _.where(resourceDefList, {'level': resourceDef.level, 'parent' : resourceDef.parent});
 					//for parent leftnode status
                     if(resourceDef.parent){
                     	parentResource = _.findWhere(resourceDefList ,{'name':resourceDef.parent});
@@ -227,9 +227,15 @@ define(function(require){
                     }
 					if(sameLevelResourceDef.length > 1){
 						obj['resourceType'] = key;
-						this.model.set('sameLevel'+resourceDef.level, obj)
-						//parentShowHide
-						this.selectedResourceTypes['sameLevel'+resourceDef.level]=key;
+                                                if(_.isUndefined(resourceDef.parent)){
+                                                        this.model.set('sameLevel'+resourceDef.level, obj);
+                                                        //parentShowHide
+                                                        this.selectedResourceTypes['sameLevel'+resourceDef.level] = key;
+                                                }else{
+                                                        this.model.set('sameLevel'+resourceDef.level+resourceDef.parent, obj);
+                                                        this.selectedResourceTypes['sameLevel'+resourceDef.level+resourceDef.parent] = key;
+                                                }
+
 					}else{
 						//single value support
 						/*if(! XAUtil.isSinglevValueInput(resourceDef) ){
@@ -677,7 +683,12 @@ define(function(require){
 				var currentResource = _.findWhere(this.getResources(), {'name': name });
 				//same level type
 				if(_.isUndefined(this.fields[currentResource.name])){
-					var sameLevelName = 'sameLevel'+currentResource.level;
+                                        if(!_.isUndefined(currentResource.parent)){
+                                                var sameLevelName = 'sameLevel'+currentResource.level + currentResource.parent;
+                                        }else{
+                                                var sameLevelName = 'sameLevel'+currentResource.level;
+                                        }
+
 					name = this.fields[sameLevelName].editor.$resourceType.val()
 					val = this.fields[sameLevelName].getValue();
 					if(isCurrentSameLevelField){

http://git-wip-us.apache.org/repos/asf/ranger/blob/8f1625c2/security-admin/src/main/webapp/templates/common/ServiceManagerLayout_tmpl.html
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/templates/common/ServiceManagerLayout_tmpl.html b/security-admin/src/main/webapp/templates/common/ServiceManagerLayout_tmpl.html
index fec2535..d4d19a6 100644
--- a/security-admin/src/main/webapp/templates/common/ServiceManagerLayout_tmpl.html
+++ b/security-admin/src/main/webapp/templates/common/ServiceManagerLayout_tmpl.html
@@ -36,10 +36,12 @@
 							<th>
 								<span class="policy-title">
                                                                 <!-- Remove alt attribut from img tag -->
-                                   <img src="images/folder-grey.png">
-									{{./this.attributes.name}} 
+                                   <span>
+                                                                                <img src="images/folder-grey.png">
+                                                                                {{./this.attributes.name}}
+                                                                        </span>
 									{{#if ../operation}} 
-									
+                                                                        <span>
                                                                           <a href="javascript:void(0)" title="Export" type="button" class="download  pull-right text-decoration" data-id="downloadBtnOnService" data-servicetype="{{./this.attributes.name}}" style="margin-right: 5px;" >
                                           <i class="icon-external-link-sign"> </i>
 	                                   </a>
@@ -49,6 +51,7 @@
 									   </a>
 									   
                                                                            <a href="#!/service/{{./this.id}}/create"class="pull-right text-decoration" title="Add New Service" style="margin-right: 2px;"> <i class="icon-plus"></i></a>
+                                    </span>
 									 
 									{{/if}}
 								</span>