You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2015/10/28 17:00:03 UTC

[27/50] [abbrv] incubator-ranger git commit: RANGER-274: UI updates to fix 404 error page after deleting a servicfixese

RANGER-274: UI updates to fix 404 error page after deleting a servicfixese

Signed-off-by: Madhan Neethiraj <ma...@apache.org>


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

Branch: refs/heads/master
Commit: e2075ffa93d727c49f04d3ce937a87bd6b966cbe
Parents: b6728b7
Author: Gautam Borad <gb...@gmail.com>
Authored: Tue Sep 29 16:28:06 2015 +0530
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Tue Sep 29 08:53:52 2015 -0700

----------------------------------------------------------------------
 .../src/main/webapp/scripts/utils/XAUtils.js    | 22 ++++++----
 .../views/policies/RangerPolicyCreate.js        | 43 ++++++++++++--------
 .../scripts/views/policies/RangerPolicyForm.js  | 26 ++++++------
 .../views/reports/PlugableServiceDiffDetail.js  | 19 ++-------
 .../scripts/views/service/ServiceCreate.js      | 19 ++++-----
 .../scripts/views/users/UserTableLayout.js      |  4 +-
 security-admin/src/main/webapp/styles/xa.css    |  1 -
 7 files changed, 68 insertions(+), 66 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e2075ffa/security-admin/src/main/webapp/scripts/utils/XAUtils.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/utils/XAUtils.js b/security-admin/src/main/webapp/scripts/utils/XAUtils.js
index 83eeff8..4265e1e 100644
--- a/security-admin/src/main/webapp/scripts/utils/XAUtils.js
+++ b/security-admin/src/main/webapp/scripts/utils/XAUtils.js
@@ -466,14 +466,19 @@ define(function(require) {
 			return '--';
 	};
 	XAUtils.showGroupsOrUsersForPolicy = function(rawValue, model, showGroups) {
-		var showMoreLess = false, groupArr = [];
+		var showMoreLess = false, groupArr = [], items = [];
+		var itemList = ['policyItems','allowExceptions','denyPolicyItems','denyExceptions']
 		var type = _.isUndefined(showGroups) ? 'groups' : 'users';
-		if (!_.isArray(rawValue) && !_.isUndefined(rawValue[type]))
-			return '--';
-		_.each(rawValue, function(perm) {
+		_.each(itemList, function(item){
+		    if(!_.isUndefined(model.get(item)) && !_.isEmpty(model.get(item))) {
+		    	items =_.union(items,  model.get(item))
+		    }
+		});
+		_.each(items, function(perm) {
 			groupArr = _.union(groupArr, perm[type])
 		});
-
+		if (_.isEmpty(items))
+			return '--';
 		var newGroupArr = _.map(groupArr, function(name, i) {
 			if (i >= 4) {
 				return '<span class="label label-info float-left-margin-2" policy-' + type
@@ -1030,11 +1035,14 @@ define(function(require) {
 			if(_.isEmpty(vXPortalUser.attributes)){
 				return controller;
 			}
-			var denyControllerActions = [];
-			var denyModulesObj = [];
+			var denyControllerActions = [], denyModulesObj = [];
 			var userModuleNames = _.pluck(vXPortalUser.get('userPermList'),'moduleName');
 			//TODO Temporary fix for tag based policies : need to come from server
 			userModuleNames.push('Tag Based Policies')
+			//add by default permission module to admin user
+			if (SessionMgr.isSystemAdmin()){
+				userModuleNames.push('Permissions')
+			}
 			var groupModuleNames = _.pluck(vXPortalUser.get('groupPermissions'), 'moduleName');
 			var moduleNames = _.union(userModuleNames, groupModuleNames);
 			

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e2075ffa/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js
index a5f0bcd..cc11cef 100644
--- a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js
+++ b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js
@@ -133,12 +133,28 @@ define(function(require){
 			});
 		},
 		onSave: function(){
-			var that = this, valid = false;
 			var errors = this.form.commit({validate : false});
 			if(! _.isEmpty(errors)){
 				return;
 			}
-			var validateObj = this.form.formValidation();
+			//validate policyItems in the policy
+			var validateObj1 = this.form.formValidation(this.form.formInputList);
+			if(!this.validatePolicyItem(validateObj1)) return;
+			var	validateObj2 = this.form.formValidation(this.form.formInputAllowExceptionList);
+			if(!this.validatePolicyItem(validateObj2)) return;
+			var	validateObj3 = this.form.formValidation(this.form.formInputDenyList);
+			if(!this.validatePolicyItem(validateObj3)) return;
+			var	validateObj4 = this.form.formValidation(this.form.formInputDenyExceptionList);
+			if(!this.validatePolicyItem(validateObj4)) return;
+			if((!validateObj1.auditLoggin) && !(validateObj1.groupPermSet || validateObj2.groupPermSet 
+										|| validateObj3.groupPermSet || validateObj4.groupPermSet)){
+				XAUtil.alertPopup({ msg :localization.tt('msg.yourAuditLogginIsOff') });
+				return;
+			}
+			this.savePolicy();
+		},
+		validatePolicyItem : function(validateObj){
+			var that = this, valid = false;
 			valid = (validateObj.groupSet && validateObj.permSet) || (validateObj.userSet && validateObj.userPerm);
 			if(!valid){
 				if((!validateObj.groupSet && !validateObj.userSet) && (validateObj.condSet)) {
@@ -157,22 +173,11 @@ define(function(require){
 					this.popupCallBack(localization.tt('msg.addUser'),validateObj);
 						
 				}else if((!validateObj.auditLoggin) && (!validateObj.groupPermSet)){
-					XAUtil.alertPopup({
-						msg :localization.tt('msg.yourAuditLogginIsOff'),
-						callback : function(){
-							/*if(!that.model.isNew()){
-								that.model.destroy({success: function(model, response) {
-									XAUtil.notifySuccess('Success', localization.tt('msg.policyDeleteMsg'));
-									App.appRouter.navigate("#!/hdfs/"+that.assetModel.id+"/policies",{trigger: true});
-								}});
-							}else{
-								XAUtil.notifyError('Error', localization.tt('msg.policyNotAddedMsg'));
-								App.appRouter.navigate("#!/hdfs/"+that.assetModel.id+"/policies",{trigger: true});
-							}*/
-						}
-					});
+					return true;
+//					XAUtil.alertPopup({ msg :localization.tt('msg.yourAuditLogginIsOff') });
 				}else{
-					this.savePolicy();
+//					this.savePolicy();
+					return true;
 				}
 			}else{
 				if(validateObj.groupSet && (!validateObj.permSet)){
@@ -186,9 +191,11 @@ define(function(require){
 					this.popupCallBack(localization.tt('msg.addUser'),validateObj);
 						
 				}else{
-					this.savePolicy();
+//					this.savePolicy();
+					return true;
 				}
 			}
+			return false;
 		},
 		savePolicy : function(){
 			var that = this;

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e2075ffa/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 55c3651..5ef56f8 100644
--- a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js
+++ b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js
@@ -348,20 +348,20 @@ define(function(require){
 					if(!_.isUndefined(m.get('userName')) && !_.isNull(m.get('userName'))){
 						policyItem.set("users",m.get("userName").split(','));
 					}
-					if(!_.isUndefined(m.get('delegateAdmin'))){
-						policyItem.set("delegateAdmin",m.get("delegateAdmin"));
-					}
-					
-					var RangerPolicyItemAccessList = Backbone.Collection.extend();
-					var rangerPlcItemAccessList = new RangerPolicyItemAccessList(m.get('accesses'));
-					policyItem.set('accesses', rangerPlcItemAccessList)
-					
-					if(!_.isUndefined(m.get('conditions'))){
+					if(!(_.isUndefined(m.get('conditions')) && _.isEmpty(m.get('conditions')))){
 						var RangerPolicyItemConditionList = Backbone.Collection.extend();
 						var rPolicyItemCondList = new RangerPolicyItemConditionList(m.get('conditions'))
 						policyItem.set('conditions', rPolicyItemCondList)
 					}
-					policyItemList.add(policyItem)
+					if(!_.isUndefined(m.get('accesses')) && !_.isUndefined(m.get('delegateAdmin'))){
+						policyItem.set("delegateAdmin",m.get("delegateAdmin"));
+					}
+					if(!_.isUndefined(m.get('accesses'))){
+						var RangerPolicyItemAccessList = Backbone.Collection.extend();
+						var rangerPlcItemAccessList = new RangerPolicyItemAccessList(m.get('accesses'));
+						policyItem.set('accesses', rangerPlcItemAccessList)
+						policyItemList.add(policyItem)
+					}
 					
 				}
 			}, this);
@@ -587,11 +587,11 @@ define(function(require){
 				};
 			return JSON.stringify(context);
 		},
-		formValidation : function(){
+		formValidation : function(coll){
 			var groupSet = false,permSet = false,groupPermSet = false,
 			userSet=false, userPerm = false, userPermSet =false,breakFlag =false, condSet = false;
 			console.log('validation called..');
-			this.formInputList.each(function(m){
+			coll.each(function(m){
 				if(_.isEmpty(m.attributes)) return;
 				if(m.has('groupName') || m.has('userName') || m.has('accesses') ){
 					if(! breakFlag){
@@ -609,7 +609,7 @@ define(function(require){
 						}
 					}
 				}
-				if(m.has('conditions')){
+				if(m.has('conditions') && !_.isEmpty(m.get('conditions'))){
 					condSet = m.has('conditions') ? true : false;
 				}
 			});

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e2075ffa/security-admin/src/main/webapp/scripts/views/reports/PlugableServiceDiffDetail.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/views/reports/PlugableServiceDiffDetail.js b/security-admin/src/main/webapp/scripts/views/reports/PlugableServiceDiffDetail.js
index ceb8898..b65dff4 100644
--- a/security-admin/src/main/webapp/scripts/views/reports/PlugableServiceDiffDetail.js
+++ b/security-admin/src/main/webapp/scripts/views/reports/PlugableServiceDiffDetail.js
@@ -88,18 +88,7 @@ define(function(require){
 			
 		},
 		initializeServiceDef : function(){
-			var url;
-			/*if(this.action == 'update'){
-				var rangerPolicy = new RangerPolicy({'id':this.objectId})
-				rangerPolicy.fetch({
-					cache : false,
-					async : false
-				})
-				this.policyName = rangerPolicy.get('name');
-				url = XAUtils.getRangerServiceByName(rangerPolicy.get('service'))
-			}else{
-			}*/
-			var policyName = this.collection.findWhere({'attributeName':'Policy Name'});
+			var url, policyName = this.collection.findWhere({'attributeName':'Policy Name'});
 			if(this.action == 'create'){
 				this.policyName = policyName.get('newValue');
 			}else if(this.action == 'delete'){
@@ -108,9 +97,9 @@ define(function(require){
 			if(!_.isUndefined(this.collection.models[0]) ){
 				this.policyName = _.isUndefined(this.policyName) ? this.collection.models[0].get('objectName') : this.policyName;
 				if(this.action != 'delete'){
-					url = XAUtils.getRangerServiceByName(this.collection.models[0].get('parentObjectName'))
-					var rangerService = new RangerService()
-					rangerService.url = url;
+//					url = XAUtils.getRangerServiceByName(this.collection.models[0].get('parentObjectName'))
+					var rangerService = new RangerService({ 'id' : this.collection.models[0].get('parentObjectId') })
+//					rangerService.url = url;
 					rangerService.fetch({
 						cache : false,
 						async : false

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e2075ffa/security-admin/src/main/webapp/scripts/views/service/ServiceCreate.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/views/service/ServiceCreate.js b/security-admin/src/main/webapp/scripts/views/service/ServiceCreate.js
index 7488cc5..79d6187 100644
--- a/security-admin/src/main/webapp/scripts/views/service/ServiceCreate.js
+++ b/security-admin/src/main/webapp/scripts/views/service/ServiceCreate.js
@@ -154,12 +154,7 @@ define(function(require){
 					XAUtil.allowNavigation();
 					var msg = that.editService ? 'Service updated successfully' :'Service created successfully';
 					XAUtil.notifySuccess('Success', msg);
-					
-					if(XAEnums.ServiceType.SERVICE_TAG.label == that.model.get('type')){
-						App.appRouter.navigate("#!/policymanager/tag",{trigger: true});
-						return;
-					}
-					App.appRouter.navigate("#!/policymanager/resource",{trigger: true});
+					that.gotoResourceOrTagTab()
 				},
 				error: function (model, response, options) {
 					XAUtil.blockUI('unblock');
@@ -185,7 +180,7 @@ define(function(require){
 							XAUtil.blockUI('unblock');
 							XAUtil.allowNavigation();
 							XAUtil.notifySuccess('Success', 'Service delete successfully');
-							App.appRouter.navigate("#!/policymanager",{trigger: true});
+							that.gotoResourceOrTagTab()
 						},
 						error: function (model, response, options) {
 							XAUtil.blockUI('unblock');
@@ -255,14 +250,16 @@ define(function(require){
 					}	
 				});
 		},
-		onCancel : function(){
-			XAUtil.allowNavigation();
-			if(XAEnums.ServiceType.SERVICE_TAG.label == this.rangerServiceDefModel.get('name')){
+		gotoResourceOrTagTab : function(){
+			if(XAEnums.ServiceType.SERVICE_TAG.label == this.model.get('type')){
 				App.appRouter.navigate("#!/policymanager/tag",{trigger: true});
 				return;
 			}
 			App.appRouter.navigate("#!/policymanager/resource",{trigger: true});
-//			App.appRouter.navigate("#!/policymanager",{trigger: true});
+		},
+		onCancel : function(){
+			XAUtil.allowNavigation();
+			this.gotoResourceOrTagTab();
 		},
 		/** on close */
 		onClose: function(){

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e2075ffa/security-admin/src/main/webapp/scripts/views/users/UserTableLayout.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/views/users/UserTableLayout.js b/security-admin/src/main/webapp/scripts/views/users/UserTableLayout.js
index 2ade868..aeb8608 100644
--- a/security-admin/src/main/webapp/scripts/views/users/UserTableLayout.js
+++ b/security-admin/src/main/webapp/scripts/views/users/UserTableLayout.js
@@ -501,7 +501,9 @@ define(function(require){
 				    	  valueMatches :function(facet, searchTerm, callback) {
 								switch (facet) {
 									case 'Role':
-										callback(XAUtil.hackForVSLabelValuePairs(XAEnums.UserRoles));
+										var roles = XAUtil.hackForVSLabelValuePairs(XAEnums.UserRoles);
+										var label  = SessionMgr.isSystemAdmin() ? XAEnums.UserRoles.ROLE_KEY_ADMIN.label : XAEnums.UserRoles.ROLE_SYS_ADMIN.label;
+										callback(_.filter(roles, function(o) { return o.label !== label; }));
 										break;
 									case 'User Source':
 										callback(XAUtil.hackForVSLabelValuePairs(XAEnums.UserTypes));

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e2075ffa/security-admin/src/main/webapp/styles/xa.css
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/styles/xa.css b/security-admin/src/main/webapp/styles/xa.css
index d17f947..331cda1 100644
--- a/security-admin/src/main/webapp/styles/xa.css
+++ b/security-admin/src/main/webapp/styles/xa.css
@@ -1903,7 +1903,6 @@ input[type="radio"], input[type="checkbox"] {margin-top: 0;}
 .table-policy-condition td label {
     min-width: 170px;
 } */
-=======
 .pause-play-close{
 	margin-left: -5px;
     margin-top: -2px;