ranger-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sneet...@apache.org
Subject git commit: ARGUS-9:Adding Storm UI changes to support Storm authorization details in admin UI
Date Tue, 19 Aug 2014 21:19:09 GMT
Repository: incubator-argus
Updated Branches:
  refs/heads/master 086831ef8 -> 866b977dd


ARGUS-9:Adding Storm UI changes to support Storm authorization details in admin UI


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

Branch: refs/heads/master
Commit: 866b977dda0e18174f942fe84437b52a88b9aaf3
Parents: 086831e
Author: sneethiraj <sneethir@apache.org>
Authored: Tue Aug 19 14:18:34 2014 -0700
Committer: sneethiraj <sneethir@apache.org>
Committed: Tue Aug 19 14:18:34 2014 -0700

----------------------------------------------------------------------
 .../src/main/webapp/scripts/models/VXAsset.js   |  2 +
 .../src/main/webapp/scripts/utils/XAUtils.js    | 14 ++-
 .../webapp/scripts/views/asset/AssetForm.js     |  9 +-
 .../scripts/views/common/FormInputItemList.js   | 88 ++++++++++--------
 .../scripts/views/common/UserPermissionList.js  | 95 +++++++++++---------
 .../main/webapp/scripts/views/users/UserForm.js |  9 ++
 .../src/main/webapp/styles/bootstrap.css        |  4 +-
 .../src/main/webapp/styles/bootstrap.min.css    |  4 +-
 security-admin/src/main/webapp/styles/xa.css    |  2 +
 .../webapp/templates/asset/AssetForm_tmpl.html  |  1 +
 .../templates/common/UserPermissionItem.html    |  7 +-
 .../webapp/templates/common/formInputItem.html  | 14 +--
 12 files changed, 148 insertions(+), 101 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/866b977d/security-admin/src/main/webapp/scripts/models/VXAsset.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/models/VXAsset.js b/security-admin/src/main/webapp/scripts/models/VXAsset.js
index 3cfeecb..01b9cf2 100644
--- a/security-admin/src/main/webapp/scripts/models/VXAsset.js
+++ b/security-admin/src/main/webapp/scripts/models/VXAsset.js
@@ -108,6 +108,8 @@ define(function(require){
 			zookeeperZnodeParent	: 'zookeeper.znode.parent',
 			//knox
 			knoxUrl					:'knox.url',
+			//Storm
+			nimbusUrl				:'nimbus.url',
 			
 			commonnameforcertificate: 'commonNameForCertificate'
 		}

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/866b977d/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 65d90a7..f59e860 100644
--- a/security-admin/src/main/webapp/scripts/utils/XAUtils.js
+++ b/security-admin/src/main/webapp/scripts/utils/XAUtils.js
@@ -597,11 +597,12 @@ define(function(require) {
 			permArr = ['XA_PERM_TYPE_ALLOW','XA_PERM_TYPE_ADMIN'];
 			break;
 		case XAEnums.AssetType.ASSET_STORM.value :
-			permArr = ['XA_PERM_TYPE_SUBMIT_TOPOLOGY','XA_PERM_TYPE_FILE_UPLOAD','XA_PERM_TYPE_GET_NIMBUS',
+			permArr = ['XA_PERM_TYPE_ADMIN'];
+			/*permArr = ['XA_PERM_TYPE_SUBMIT_TOPOLOGY','XA_PERM_TYPE_FILE_UPLOAD','XA_PERM_TYPE_GET_NIMBUS',
 			           'XA_PERM_TYPE_GET_CLUSTER_INFO','XA_PERM_TYPE_FILE_DOWNLOAD','XA_PERM_TYPE_KILL_TOPOLOGY',
 			           'XA_PERM_TYPE_REBALANCE','XA_PERM_TYPE_ACTIVATE','XA_PERM_TYPE_DEACTIVATE','XA_PERM_TYPE_GET_TOPOLOGY_CONF',
 			           'XA_PERM_TYPE_GET_TOPOLOGY','XA_PERM_TYPE_GET_USER_TOPOLOGY','XA_PERM_TYPE_GET_TOPOLOGY_INFO','XA_PERM_TYPE_UPLOAD_NEW_CREDENTIAL'
-			           ];
+			           ];*/
 			break;	
 		}
 		return permArr;
@@ -624,10 +625,17 @@ define(function(require) {
 			permHeaders.push(localization.tt('lbl.ipAddress'),localization.tt('lbl.allow'),localization.tt('lbl.admin'),'');
 			break;
 		case XAEnums.AssetType.ASSET_STORM.value :
-			permHeaders.push(localization.tt('lbl.actions'),'');
+			permHeaders.push(localization.tt('lbl.actions'),localization.tt('lbl.admin'),'');
 			break;	
 		}
 		return permHeaders;
 	};
+	XAUtils.getStormActions = function(){
+		return ['XA_PERM_TYPE_SUBMIT_TOPOLOGY','XA_PERM_TYPE_FILE_UPLOAD','XA_PERM_TYPE_GET_NIMBUS',
+		           'XA_PERM_TYPE_GET_CLUSTER_INFO','XA_PERM_TYPE_FILE_DOWNLOAD','XA_PERM_TYPE_KILL_TOPOLOGY',
+		           'XA_PERM_TYPE_REBALANCE','XA_PERM_TYPE_ACTIVATE','XA_PERM_TYPE_DEACTIVATE','XA_PERM_TYPE_GET_TOPOLOGY_CONF',
+		           'XA_PERM_TYPE_GET_TOPOLOGY','XA_PERM_TYPE_GET_USER_TOPOLOGY','XA_PERM_TYPE_GET_TOPOLOGY_INFO','XA_PERM_TYPE_UPLOAD_NEW_CREDENTIAL'
+		           ];
+	};
     return XAUtils;
 });

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/866b977d/security-admin/src/main/webapp/scripts/views/asset/AssetForm.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/views/asset/AssetForm.js b/security-admin/src/main/webapp/scripts/views/asset/AssetForm.js
index aa45a9e..08a0ae7 100644
--- a/security-admin/src/main/webapp/scripts/views/asset/AssetForm.js
+++ b/security-admin/src/main/webapp/scripts/views/asset/AssetForm.js
@@ -169,6 +169,11 @@ define(function(require){
 					title : this.model.propertiesNameMap.knoxUrl,
 					editorAttrs :{'class':'stretchTextInput'}
 				},
+				nimbusUrl : {
+					fieldClass : "storm",
+					title : this.model.propertiesNameMap.nimbusUrl,
+					editorAttrs :{'class':'stretchTextInput'}
+				},
 				commonnameforcertificate : {
 					title : localization.tt('lbl.commonNameForCertificate'),
 					editorAttrs :{'class':'stretchTextInput'}
@@ -230,7 +235,7 @@ define(function(require){
 					attrs = ['userName','passwordKeytabfile','knoxUrl','commonnameforcertificate'];
 					break;
 				case XAEnums.AssetType.ASSET_STORM.value :
-					attrs = ['userName','passwordKeytabfile','commonnameforcertificate'];
+					attrs = ['userName','passwordKeytabfile','nimbusUrl','commonnameforcertificate'];
 			}
 			var obj = _.pick(this.model.attributes,attrs);
 			_.each(obj,function(val,prop){
@@ -245,7 +250,7 @@ define(function(require){
 		},
 		assetTypeChanged : function(val){
 			this.$('.hive').parents('fieldset').show();
-			this.$('.hdfs,.hive,.hbase,.knox').hide();
+			this.$('.hdfs,.hive,.hbase,.knox,.storm').hide();
 			switch(parseInt(val)){
 				case XAEnums.AssetType.ASSET_HDFS.value :
 					this.fields.fsDefaultName.$el.find('.control-label').html(this.model.propertiesNameMap.fsDefaultName+'*');

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/866b977d/security-admin/src/main/webapp/scripts/views/common/FormInputItemList.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/views/common/FormInputItemList.js b/security-admin/src/main/webapp/scripts/views/common/FormInputItemList.js
index 277b2ab..2ac197b 100644
--- a/security-admin/src/main/webapp/scripts/views/common/FormInputItemList.js
+++ b/security-admin/src/main/webapp/scripts/views/common/FormInputItemList.js
@@ -45,7 +45,10 @@ define(function(require) {
 			this.stormPermsIds = [];
 			if(this.policyType == XAEnums.AssetType.ASSET_STORM.value){
 				if(this.model.has('editMode') && this.model.get('editMode')){
-					this.stormPermsIds = _.map(this.model.get('_vPermList'), function(p){return p.permType;});
+					this.stormPermsIds = _.map(this.model.get('_vPermList'), function(p){
+											if(XAEnums.XAPermType.XA_PERM_TYPE_ADMIN.value != p.permType)
+												return p.permType;
+										});
 				}
 			}
 		},
@@ -58,20 +61,16 @@ define(function(require) {
 			if(!_.isUndefined(this.model.get('ipAddress'))){
 				this.ui.inputIPAddress.val(this.model.get('ipAddress').toString());
 			}
-			
+			if(this.model.has('editMode') && this.model.get('editMode')){
+				_.each(this.model.get('_vPermList'), function(p){
+					this.$el.find('input[data-id="' + p.permType + '"]').attr('checked', 'checked');
+				},this);
+			}
 			this.createGroupDropDown();
 			this.groupDropDownChange();
 			if(this.policyType == XAEnums.AssetType.ASSET_STORM.value){
 				this.renderStormPerms();
 			}
-			else{
-				// TODO FIXME Remove
-				if(this.model.has('editMode') && this.model.get('editMode')){
-					_.each(this.model.get('_vPermList'), function(p){
-						this.$el.find('input[data-id="' + p.permType + '"]').attr('checked', 'checked');
-					},this);
-				}
-			}
 		},
 		groupDropDownChange : function(){
 			var that = this;
@@ -212,14 +211,15 @@ define(function(require) {
 				$checkbox.is(':checked') ? $checkbox.prop('checked',false) : $checkbox.prop('checked',true);
 			}
 			var curPerm = $el.find('input').data('id');
-			var perms = [];
-			if(this.model.has('_vPermList')){
-				if(_.isArray(this.model.get('_vPermList')))
-					perms = this.model.get('_vPermList');
-				else
-					perms.push(this.model.get('_vPermList'));
-			}
-			/* permMapList = [ {id: 18, groupId : 1, permType :5}, {id: 18, groupId : 1, permType
:4}, {id: 18, groupId : 2, permType :5} ]
+			if(!_.isUndefined(curPerm)){
+				var perms = [];
+				if(this.model.has('_vPermList')){
+					if(_.isArray(this.model.get('_vPermList')))
+						perms = this.model.get('_vPermList');
+					else
+						perms.push(this.model.get('_vPermList'));
+				}
+				/* permMapList = [ {id: 18, groupId : 1, permType :5}, {id: 18, groupId : 1, permType
:4}, {id: 18, groupId : 2, permType :5} ]
 			   [1] => [ {id: 18, groupId : 1, permType :5}, {id: 19, groupId : 1, permType :4}
]
 			   [2] => [ {id: 20, groupId : 2, permType :5} ]
 			{ 	groupId : 1,
@@ -229,27 +229,28 @@ define(function(require) {
 				_vPermList : [ { id: 20, permType : 5 }, { permType : 6 } ]
 			}
 			
-			*/
+				 */
 //			perms = this.model.has('_vPermList') ? this.model.get('_vPermList'): [];
-			
-			if($el.find('input[type="checkbox"]').is(':checked')){
-				perms.push({permType : curPerm});
-				if(curPerm == XAEnums.XAPermType.XA_PERM_TYPE_ADMIN.value){
-					$el.parent().find('input[type="checkbox"]:not(:checked)[data-id!="'+curPerm+'"]').map(function(){
+				
+				if($el.find('input[type="checkbox"]').is(':checked')){
+					perms.push({permType : curPerm});
+					if(curPerm == XAEnums.XAPermType.XA_PERM_TYPE_ADMIN.value){
+						$el.parent().find('input[type="checkbox"]:not(:checked)[data-id!="'+curPerm+'"]').map(function(){
 							perms.push({ permType :$(this).data('id')});
-					    //  return { permType :$(this).data('id')};
-					});
-					$el.parent().find('input[type="checkbox"]').prop('checked',true);
+							//  return { permType :$(this).data('id')};
+						});
+						$el.parent().find('input[type="checkbox"]').prop('checked',true);
+					}
+				} else {
+					perms = _.reject(perms,function(el) { return el.permType == curPerm; });
 				}
-			} else {
-				perms = _.reject(perms,function(el) { return el.permType == curPerm; });
+				
+				this.checkDirtyFieldForCheckBox(perms);
+				if(!_.isEmpty(perms))
+					this.model.set('_vPermList', perms);
+				else 
+					this.model.unset('_vPermList');
 			}
-			
-			this.checkDirtyFieldForCheckBox(perms);
-			if(!_.isEmpty(perms))
-				this.model.set('_vPermList', perms);
-			else 
-				this.model.unset('_vPermList');
 		},
 		checkDirtyFieldForCheckBox : function(perms){
 			var permList = [];
@@ -283,7 +284,7 @@ define(function(require) {
 		},
 		renderStormPerms :function(){
 			var that = this;
-			var permArr = _.pick(XAEnums.XAPermType,  XAUtil.getPerms(this.policyType));
+			var permArr = _.pick(XAEnums.XAPermType,  XAUtil.getStormActions(this.policyType));
 			this.stormPerms =  _.map(permArr,function(m){return {text:m.label, value:m.value};});
 			this.stormPerms.push({'value' : -1, 'text' : 'Select/Deselect All'});
 			this.ui.tags.editable({
@@ -300,13 +301,24 @@ define(function(require) {
 //			    	that.checkDirtyFieldForGroup(values);
 			    	var permTypeArr = [];
 		    		var valArr = _.map(idList, function(id){
-		    			if(!(parseInt(id) <= 0)){
+		    			if(!(parseInt(id) <= 0) && (!_.isNaN(parseInt(id)))){
 		    				var obj = _.findWhere(srcData,{'value' : parseInt(id)});
 		    				permTypeArr.push({permType : obj.value});
 		    				return "<span class='label label-inverse'>" + obj.text + "</span>";
 		    			}
 		    		});
-		    		that.model.set('_vPermList', permTypeArr);
+		    		
+		    		if(that.model.has('_vPermList')){
+		    			var adminPerm = [];
+		    			adminPerm = _.where(that.model.get('_vPermList'),{'permType': XAEnums.XAPermType.XA_PERM_TYPE_ADMIN.value
});
+		    			if(_.isEmpty(adminPerm))
+		    				that.model.set('_vPermList', permTypeArr);
+		    			else
+		    				that.model.set('_vPermList', _.union(permTypeArr,adminPerm));
+					}
+//		    		if(!_.isEmpty(perms))
+//		    			that.model.set('_vPermList', perms);
+//		    		that.model.set('_vPermList', permTypeArr);
 		    		$(this).html(valArr.join(" "));
 			    },
 			});

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/866b977d/security-admin/src/main/webapp/scripts/views/common/UserPermissionList.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/views/common/UserPermissionList.js b/security-admin/src/main/webapp/scripts/views/common/UserPermissionList.js
index f6bea49..4611f49 100644
--- a/security-admin/src/main/webapp/scripts/views/common/UserPermissionList.js
+++ b/security-admin/src/main/webapp/scripts/views/common/UserPermissionList.js
@@ -44,7 +44,10 @@ define(function(require) {
 			this.stormPermsIds = [];
 			if(this.policyType == XAEnums.AssetType.ASSET_STORM.value){
 				if(this.model.has('editMode') && this.model.get('editMode')){
-					this.stormPermsIds = _.map(this.model.get('_vPermList'), function(p){return p.permType;});
+					this.stormPermsIds = _.map(this.model.get('_vPermList'), function(p){
+						if(XAEnums.XAPermType.XA_PERM_TYPE_ADMIN.value != p.permType)
+							return p.permType;
+					});
 				}
 			}
 		},
@@ -59,16 +62,13 @@ define(function(require) {
 				this.ui.inputIPAddress.val(this.model.get('ipAddress').toString());
 			}
 			
+			if(this.model.has('editMode') && this.model.get('editMode')){
+				_.each(this.model.get('_vPermList'), function(p){
+					this.$el.find('input[data-id="' + p.permType + '"]').attr('checked', 'checked');
+				},this);
+			}
 			if(this.policyType == XAEnums.AssetType.ASSET_STORM.value)
 				this.renderStormPerms();
-			else{
-				// TODO FIXME Remove
-				if(this.model.has('editMode') && this.model.get('editMode')){
-					_.each(this.model.get('_vPermList'), function(p){
-						this.$el.find('input[data-id="' + p.permType + '"]').attr('checked', 'checked');
-					},this);
-				}
-			}
 			
 			this.createSelectUserDropDown();
 			this.userDropDownChange();
@@ -109,16 +109,17 @@ define(function(require) {
 				$checkbox.is(':checked') ? $checkbox.prop('checked',false) : $checkbox.prop('checked',true);
 
 			}
 			var curPerm = $el.find('input').data('id');
-			var perms = [];
-			if(this.model.has('_vPermList')){
-				if(_.isArray(this.model.get('_vPermList')))
-					perms = this.model.get('_vPermList');
-				else
-					perms.push(this.model.get('_vPermList'));
-			}
+			if(!_.isUndefined(curPerm)){
+				var perms = [];
+				if(this.model.has('_vPermList')){
+					if(_.isArray(this.model.get('_vPermList')))
+						perms = this.model.get('_vPermList');
+					else
+						perms.push(this.model.get('_vPermList'));
+				}
 				
-			
-			/* permMapList = [ {id: 18, groupId : 1, permType :5}, {id: 18, groupId : 1, permType
:4}, {id: 18, groupId : 2, permType :5} ]
+				
+				/* permMapList = [ {id: 18, groupId : 1, permType :5}, {id: 18, groupId : 1, permType
:4}, {id: 18, groupId : 2, permType :5} ]
 			   [1] => [ {id: 18, groupId : 1, permType :5}, {id: 19, groupId : 1, permType :4}
]
 			   [2] => [ {id: 20, groupId : 2, permType :5} ]
 			{ 	groupId : 1,
@@ -128,31 +129,32 @@ define(function(require) {
 				_vPermList : [ { id: 20, permType : 5 }, { permType : 6 } ]
 			}
 			
-			*/
-			
+				 */
+				
 //			perms = this.model.has('_vPermList') ? this.model.get('_vPermList'): [];
-			
-			if($el.find('input[type="checkbox"]').is(':checked')){
-				perms.push({permType : curPerm});
-				if(curPerm == XAEnums.XAPermType.XA_PERM_TYPE_ADMIN.value){
-					$el.parent().find('input[type="checkbox"]:not(:checked)[data-id!="'+curPerm+'"]').map(function(){
+				
+				if($el.find('input[type="checkbox"]').is(':checked')){
+					perms.push({permType : curPerm});
+					if(curPerm == XAEnums.XAPermType.XA_PERM_TYPE_ADMIN.value){
+						$el.parent().find('input[type="checkbox"]:not(:checked)[data-id!="'+curPerm+'"]').map(function(){
 							perms.push({ permType :$(this).data('id')});
-					   //   return { permType :$(this).data('id')};
-					});
-				//	this.model.set('_vPermList', perms);
-					$el.parent().find('input[type="checkbox"]').prop('checked',true);
+							//   return { permType :$(this).data('id')};
+						});
+						//	this.model.set('_vPermList', perms);
+						$el.parent().find('input[type="checkbox"]').prop('checked',true);
+					}
+				} else {
+					perms = _.reject(perms,function(el) { return el.permType == curPerm; });
+					
+					//perms = _.without(perms, curPerm);
+					
+				}
+				this.checkDirtyFieldForCheckBox(perms);
+				if(!_.isEmpty(perms)){
+					this.model.set('_vPermList', perms);
+				} else {
+					this.model.unset('_vPermList');
 				}
-			} else {
-				perms = _.reject(perms,function(el) { return el.permType == curPerm; });
-
-				//perms = _.without(perms, curPerm);
-				
-			}
-			this.checkDirtyFieldForCheckBox(perms);
-			if(!_.isEmpty(perms)){
-				this.model.set('_vPermList', perms);
-			} else {
-				this.model.unset('_vPermList');
 			}
 		},
 		checkDirtyFieldForCheckBox : function(perms){
@@ -292,7 +294,7 @@ define(function(require) {
 		},
 		renderStormPerms :function(){
 			var that = this;
-			var permArr = _.pick(XAEnums.XAPermType,  XAUtil.getPerms(this.policyType));
+			var permArr = _.pick(XAEnums.XAPermType,  XAUtil.getStormActions(this.policyType));
 			this.stormPerms =  _.map(permArr,function(m){return {text:m.label, value:m.value};});
 			this.stormPerms.push({'value' : -1, 'text' : 'Select/Deselect All'});
 			this.ui.tags.editable({
@@ -309,13 +311,20 @@ define(function(require) {
 //			    	that.checkDirtyFieldForGroup(values);
 			    	var permTypeArr = [];
 		    		var valArr = _.map(idList, function(id){
-		    			if(!(parseInt(id) <= 0)){
+		    			if(!(parseInt(id) <= 0) && (!_.isNaN(parseInt(id)))){
 			    			var obj = _.findWhere(srcData,{'value' : parseInt(id)});
 			    			permTypeArr.push({permType : obj.value});
 			    			return "<span class='label label-inverse'>" + obj.text + "</span>";
 		    			}
 		    		});
-		    		that.model.set('_vPermList', permTypeArr);
+		    		if(that.model.has('_vPermList')){
+		    			var adminPerm = [];
+		    			adminPerm = _.where(that.model.get('_vPermList'),{'permType': XAEnums.XAPermType.XA_PERM_TYPE_ADMIN.value
});
+		    			if(_.isEmpty(adminPerm))
+		    				that.model.set('_vPermList', permTypeArr);
+		    			else
+		    				that.model.set('_vPermList', _.union(permTypeArr,adminPerm));
+					}
 		    		$(this).html(valArr.join(" "));
 			    },
 			});

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/866b977d/security-admin/src/main/webapp/scripts/views/users/UserForm.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/views/users/UserForm.js b/security-admin/src/main/webapp/scripts/views/users/UserForm.js
index b89ddd7..bd4e16c 100644
--- a/security-admin/src/main/webapp/scripts/views/users/UserForm.js
+++ b/security-admin/src/main/webapp/scripts/views/users/UserForm.js
@@ -136,6 +136,15 @@ define(function(require){
 				if(this.model.get('name') == userProfileModel.get('loginId')){
 					this.fields.userRoleList.editor.$el.attr('disabled',true);
 				}
+				if(userProfileModel.get('loginId') != "admin"){
+					if(_.contains(this.model.get('userRoleList'),'ROLE_SYS_ADMIN')){
+						this.fields.userRoleList.editor.$el.attr('disabled',true);
+					}else{
+						this.fields.userRoleList.editor.$el.attr('disabled',false);
+					}
+				}else{
+					this.fields.userRoleList.editor.$el.attr('disabled',false);
+				}
 			}
 			
 		},

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/866b977d/security-admin/src/main/webapp/styles/bootstrap.css
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/styles/bootstrap.css b/security-admin/src/main/webapp/styles/bootstrap.css
index 985f2f8..3933a55 100644
--- a/security-admin/src/main/webapp/styles/bootstrap.css
+++ b/security-admin/src/main/webapp/styles/bootstrap.css
@@ -1949,8 +1949,8 @@ table th[class*="span"],
  * -------------------------- */
 @font-face {
   font-family: 'FontAwesome';
-  src: url('../../../fonts/fontawesome/fontawesome-webfont.eot?v=3.2.1');
-  src: url('../../../fonts/fontawesome/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'),
url('../../../fonts/fontawesome/fontawesome-webfont.woff?v=3.2.1') format('woff'), url('../../../fonts/fontawesome/fontawesome-webfont.ttf?v=3.2.1')
format('truetype'), url('../../../fonts/fontawesome/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1')
format('svg');
+  src: url('../fonts/fontawesome/fontawesome-webfont.eot?v=3.2.1');
+  src: url('../fonts/fontawesome/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'),
url('../fonts/fontawesome/fontawesome-webfont.woff?v=3.2.1') format('woff'), url('../fonts/fontawesome/fontawesome-webfont.ttf?v=3.2.1')
format('truetype'), url('../fonts/fontawesome/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1')
format('svg');
   font-weight: normal;
   font-style: normal;
 }

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/866b977d/security-admin/src/main/webapp/styles/bootstrap.min.css
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/styles/bootstrap.min.css b/security-admin/src/main/webapp/styles/bootstrap.min.css
index 985f2f8..3933a55 100644
--- a/security-admin/src/main/webapp/styles/bootstrap.min.css
+++ b/security-admin/src/main/webapp/styles/bootstrap.min.css
@@ -1949,8 +1949,8 @@ table th[class*="span"],
  * -------------------------- */
 @font-face {
   font-family: 'FontAwesome';
-  src: url('../../../fonts/fontawesome/fontawesome-webfont.eot?v=3.2.1');
-  src: url('../../../fonts/fontawesome/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'),
url('../../../fonts/fontawesome/fontawesome-webfont.woff?v=3.2.1') format('woff'), url('../../../fonts/fontawesome/fontawesome-webfont.ttf?v=3.2.1')
format('truetype'), url('../../../fonts/fontawesome/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1')
format('svg');
+  src: url('../fonts/fontawesome/fontawesome-webfont.eot?v=3.2.1');
+  src: url('../fonts/fontawesome/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'),
url('../fonts/fontawesome/fontawesome-webfont.woff?v=3.2.1') format('woff'), url('../fonts/fontawesome/fontawesome-webfont.ttf?v=3.2.1')
format('truetype'), url('../fonts/fontawesome/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1')
format('svg');
   font-weight: normal;
   font-style: normal;
 }

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/866b977d/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 7ebc5e3..ecf54bd 100644
--- a/security-admin/src/main/webapp/styles/xa.css
+++ b/security-admin/src/main/webapp/styles/xa.css
@@ -1548,6 +1548,8 @@ body.login {
   visibility: hidden;
   font-size: 20px;
   margin-top: 3px;
+  position:relative;
+  right:80px;
 }
 .login form .btn,
 .login input {

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/866b977d/security-admin/src/main/webapp/templates/asset/AssetForm_tmpl.html
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/templates/asset/AssetForm_tmpl.html b/security-admin/src/main/webapp/templates/asset/AssetForm_tmpl.html
index e5e2de2..9b02a06 100644
--- a/security-admin/src/main/webapp/templates/asset/AssetForm_tmpl.html
+++ b/security-admin/src/main/webapp/templates/asset/AssetForm_tmpl.html
@@ -32,6 +32,7 @@
 		<div class="" data-fields="zookeeperQuorum"></div>
 		<div class="" data-fields="zookeeperZnodeParent"></div>
 		<div class="" data-fields="knoxUrl"></div>
+		<div class="" data-fields="nimbusUrl"></div>
 		<div class="" data-fields="commonnameforcertificate"></div>
 		<!-- div class="" data-fields="pair"></div-->
 	</fieldset>

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/866b977d/security-admin/src/main/webapp/templates/common/UserPermissionItem.html
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/templates/common/UserPermissionItem.html b/security-admin/src/main/webapp/templates/common/UserPermissionItem.html
index 36f4082..0f91d42 100644
--- a/security-admin/src/main/webapp/templates/common/UserPermissionItem.html
+++ b/security-admin/src/main/webapp/templates/common/UserPermissionItem.html
@@ -20,13 +20,12 @@
        		{{/if}}
        	</a>
 </td>	
-{{else}}
-	{{#each permissions}}
+{{/if}}
+{{#each permissions}}
 		<td style="cursor:pointer;">
 			<input data-id="{{./this.value}}" type="checkbox">
 		</td>
-	{{/each}}
-{{/if}}	
+{{/each}}
 
 <td>
 	<button type="button" class="btn btn-small btn-danger " data-action="delete">

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/866b977d/security-admin/src/main/webapp/templates/common/formInputItem.html
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/templates/common/formInputItem.html b/security-admin/src/main/webapp/templates/common/formInputItem.html
index 9fce62a..fa4bef3 100644
--- a/security-admin/src/main/webapp/templates/common/formInputItem.html
+++ b/security-admin/src/main/webapp/templates/common/formInputItem.html
@@ -21,13 +21,13 @@
        		{{/if}}
        	</a>
 </td>	
-{{else}}
-	{{#each permissions}}
-		<td style="cursor:pointer;">
-			<input data-id="{{./this.value}}" type="checkbox">
-		</td>
-	{{/each}}
-{{/if}}	
+{{/if}}
+{{#each permissions}}
+	<td style="cursor:pointer;">
+		<input data-id="{{./this.value}}" type="checkbox">
+	</td>
+{{/each}}
+	
 
 
 <td>


Mime
View raw message