You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by me...@apache.org on 2018/09/04 12:58:25 UTC

[15/28] ranger git commit: RANGER-2177: Handle validations for duplicate configuration item during service create/edit

RANGER-2177: Handle validations for duplicate configuration item during service create/edit

Signed-off-by: zhangqiang2 <zh...@zte.com.cn>


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

Branch: refs/heads/ranger-1.1
Commit: a2de0ebff8dfb7d36f9e50ef027b404100be1f67
Parents: 27f56df
Author: xingpeng1 <xi...@zte.com.cn>
Authored: Fri Aug 3 15:58:24 2018 +0800
Committer: Mehul Parikh <me...@apache.org>
Committed: Tue Sep 4 11:38:54 2018 +0530

----------------------------------------------------------------------
 .../scripts/modules/globalize/message/en.js     |  3 +-
 .../scripts/views/service/ServiceCreate.js      | 22 ++++++------
 .../webapp/scripts/views/service/ServiceForm.js | 36 ++++++++++++++------
 3 files changed, 39 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ranger/blob/a2de0ebf/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js b/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js
index f4c3c27..99cbf55 100644
--- a/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js
+++ b/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js
@@ -437,7 +437,8 @@ define(function(require) {
                 noUserFoundText			: 'No user associate with this group.',
                 showInitialHundredUser  : 'Initially search filter is applied for first hundred users. To get more users click on ',
                 searchForUserSync       :"Search for your user sync audits...",
-                policyExpired           :'Policy Expired'
+                policyExpired           :'Policy Expired',
+                duplicateNewConfigValidationMsg     :'Please make sure the new configuration has no duplicate names'
 
 			},
 			plcHldr : {

http://git-wip-us.apache.org/repos/asf/ranger/blob/a2de0ebf/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 c8ecdc3..7c2c778 100644
--- a/security-admin/src/main/webapp/scripts/views/service/ServiceCreate.js
+++ b/security-admin/src/main/webapp/scripts/views/service/ServiceCreate.js
@@ -17,7 +17,7 @@
  * under the License.
  */
 
- 
+
 /* 
  * Repository/Service create view
  */
@@ -31,7 +31,7 @@ define(function(require){
 	var XAEnums			= require('utils/XAEnums');
 	var XALinks 		= require('modules/XALinks');
 	var localization	= require('utils/XALangSupport');
-	
+
 	var ServiceForm		= require('views/service/ServiceForm');
 	var RangerServiceDef	= require('models/RangerServiceDef');
 	var ServiceCreateTmpl = require('hbs!tmpl/service/ServiceCreate_tmpl');
@@ -42,19 +42,19 @@ define(function(require){
 		_viewName : 'ServiceCreate',
 
 		template: ServiceCreateTmpl,
-		
+
 		templateHelpers : function(){
 			return { editService : this.editService};
 		},
-        
+
 		breadCrumbs :function(){
-			var name  = this.rangerServiceDefModel.get('name') != XAEnums.ServiceType.SERVICE_TAG.label ? 'ServiceManager' : 'TagBasedServiceManager'; 
+			var name  = this.rangerServiceDefModel.get('name') != XAEnums.ServiceType.SERVICE_TAG.label ? 'ServiceManager' : 'TagBasedServiceManager';
 			if(this.model.isNew()){
 				return [XALinks.get(name), XALinks.get('ServiceCreate')];
 			} else {
 				return [XALinks.get(name), XALinks.get('ServiceEdit')];
 			}
-		},        
+		},
 
 		/** Layout sub regions */
 		regions: {
@@ -132,7 +132,9 @@ define(function(require){
 			if(! _.isEmpty(errors)){
 				return;
 			}
-			this.form.formValidation();
+			if (!this.form.formValidation()) {
+				return;
+			}
 			this.saveService();
 		},
 		saveService : function(){
@@ -165,7 +167,7 @@ define(function(require){
 				msg :'Are you sure want to delete ?',
 				callback : function(){
 					XAUtil.blockUI();
-					
+
 					that.model.destroy({
 						success: function(model, response) {
 							XAUtil.blockUI('unblock');
@@ -182,7 +184,7 @@ define(function(require){
 							}
 						}
 					});
-					
+
 				}
 			});
 		},
@@ -242,7 +244,7 @@ define(function(require){
                                                         XAUtil.defaultErrorHandler(options , msResponse);
                                                 }
 						bootbox.alert("Connection Failed.");
-					}	
+					}
 				});
 		},
 		gotoResourceOrTagTab : function(){

http://git-wip-us.apache.org/repos/asf/ranger/blob/a2de0ebf/security-admin/src/main/webapp/scripts/views/service/ServiceForm.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/views/service/ServiceForm.js b/security-admin/src/main/webapp/scripts/views/service/ServiceForm.js
index 079ce00..726fb5f 100644
--- a/security-admin/src/main/webapp/scripts/views/service/ServiceForm.js
+++ b/security-admin/src/main/webapp/scripts/views/service/ServiceForm.js
@@ -1,4 +1,4 @@
-	/*
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -17,14 +17,14 @@
  * under the License.
  */
 
- 
+
 define(function(require){
     'use strict';
 
 	var Backbone		= require('backbone');
 	var XAEnums			= require('utils/XAEnums');
 	var XAUtil			= require('utils/XAUtils');
-	
+
 	var localization	= require('utils/XALangSupport');
 	var BackboneFormDataType	= require('models/BackboneFormDataType');
 	var ConfigurationList		= require('views/service/ConfigurationList')
@@ -52,7 +52,7 @@ define(function(require){
 				  serviceDetail += name+",";
 			  }
 			});
-			
+
 			return {
 				serviceDetail : serviceDetail.slice(0,-1),
 				serviceConfig : serviceConfig.slice(0,-1)
@@ -124,7 +124,7 @@ define(function(require){
 				} else {
 					this.fields.isEnabled.editor.setValue(XAEnums.ActiveStatus.STATUS_DISABLED.value);
 				}
-			}	
+			}
 		},
 		evIsEnabledChange : function(form, fieldEditor){
 			XAUtil.checkDirtyFieldForToggle(fieldEditor.$el);
@@ -143,8 +143,22 @@ define(function(require){
 		},
 
 		formValidation : function(){
-			//return false;
-			return true;
+			var valid = true;
+			var config = {};
+			this.extraConfigColl.each(function(obj){
+				if(!_.isEmpty(obj.attributes)) {
+					if (!_.isUndefined(config[obj.get('name')])) {
+						XAUtil.alertPopup({
+							msg : localization.tt('msg.duplicateNewConfigValidationMsg')
+						});
+						valid = false;
+						return;
+					} else {
+						config[obj.get('name')] = obj.get('value');
+					}
+				}
+			});
+			return valid;
 		},
 
 		beforeSave : function(){
@@ -165,11 +179,11 @@ define(function(require){
 					}
 				});
 			}
-			this.extraConfigColl.each(function(obj){ 
+			this.extraConfigColl.each(function(obj){
 				if(!_.isEmpty(obj.attributes)) config[obj.get('name')] = obj.get('value');
 			});
-			this.model.set('configs',config);	
-			
+			this.model.set('configs',config);
+
 			//Set service type
 			this.model.set('type',this.rangerServiceDefModel.get('name'))
 			//Set isEnabled
@@ -178,7 +192,7 @@ define(function(require){
 			} else {
 				this.model.set('isEnabled',false);
 			}
-			
+
 			//Remove unwanted attributes from model
 			if(!this.model.isNew()){
 				_.each(this.model.attributes.configs, function(value, name){