ranger-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sneet...@apache.org
Subject git commit: ARGUS-20: fixed to do audit log of user profile update
Date Mon, 25 Aug 2014 22:44:08 GMT
Repository: incubator-argus
Updated Branches:
  refs/heads/master c90142915 -> f2034ba72


ARGUS-20: fixed to do audit log of user profile update


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

Branch: refs/heads/master
Commit: f2034ba72fb320a6a211b62f963a3971247f6096
Parents: c901429
Author: sneethiraj <sneethir@apache.org>
Authored: Mon Aug 25 15:37:55 2014 -0700
Committer: sneethiraj <sneethir@apache.org>
Committed: Mon Aug 25 15:37:55 2014 -0700

----------------------------------------------------------------------
 .../main/java/com/xasecure/biz/AssetMgr.java    |   6 +-
 .../src/main/java/com/xasecure/biz/UserMgr.java |  68 ++++++---
 .../xasecure/service/XPortalUserService.java    | 153 ++++++++++++++++++-
 .../src/main/webapp/scripts/utils/XAEnums.js    |   2 +-
 .../webapp/scripts/views/policy/PolicyForm.js   |  19 ++-
 .../webapp/scripts/views/reports/AuditLayout.js |   6 +-
 .../webapp/scripts/views/user/UserProfile.js    |   2 +-
 security-admin/src/main/webapp/styles/xa.css    |   3 +
 .../reports/PolicyOperationDiff_tmpl.html       |   2 +-
 9 files changed, 233 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/f2034ba7/security-admin/src/main/java/com/xasecure/biz/AssetMgr.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/com/xasecure/biz/AssetMgr.java b/security-admin/src/main/java/com/xasecure/biz/AssetMgr.java
index ac31fa6..91dcd38 100644
--- a/security-admin/src/main/java/com/xasecure/biz/AssetMgr.java
+++ b/security-admin/src/main/java/com/xasecure/biz/AssetMgr.java
@@ -320,8 +320,10 @@ public class AssetMgr extends AssetMgrBase {
 					if(vXResource.getId()!=newVXResource.getId() && vXResource.getPolicyName().trim().equalsIgnoreCase(newVXResource.getPolicyName().trim())){
 						logger.error("policy already exist with name "+vXResource.getPolicyName());
 						logger.info("A system generated policy name shall be assigned to "+vXResource.getPolicyName());
-						vXResource.setPolicyName(null);
-						break;
+//						vXResource.setPolicyName(null);
+//						break;
+						throw restErrorUtil.createRESTException("policy already exist with name "
+								+vXResource.getPolicyName(),MessageEnums.ERROR_DUPLICATE_OBJECT);
 					}
 				}
 			}

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/f2034ba7/security-admin/src/main/java/com/xasecure/biz/UserMgr.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/com/xasecure/biz/UserMgr.java b/security-admin/src/main/java/com/xasecure/biz/UserMgr.java
index de8a90f..6a597e2 100644
--- a/security-admin/src/main/java/com/xasecure/biz/UserMgr.java
+++ b/security-admin/src/main/java/com/xasecure/biz/UserMgr.java
@@ -7,6 +7,7 @@ import java.util.List;
 
 import javax.persistence.Query;
 
+import com.xasecure.common.AppConstants;
 import com.xasecure.common.XACommonEnums;
 import com.xasecure.common.XAConstants;
 import com.xasecure.common.ContextUtil;
@@ -22,6 +23,8 @@ import com.xasecure.common.XAConfigUtil;
 import com.xasecure.db.XADaoManager;
 import com.xasecure.entity.XXPortalUser;
 import com.xasecure.entity.XXPortalUserRole;
+import com.xasecure.entity.XXTrxLog;
+import com.xasecure.service.XPortalUserService;
 import com.xasecure.view.VXPasswordChange;
 import com.xasecure.view.VXResponse;
 import com.xasecure.view.VXString;
@@ -70,6 +73,9 @@ public class UserMgr {
 
 	@Autowired
 	XAConfigUtil configUtil;
+	
+	@Autowired
+	XPortalUserService xPortalUserService;
 
 	String publicRoles[] = new String[] { XAConstants.ROLE_USER,
 			XAConstants.ROLE_OTHER };
@@ -140,7 +146,9 @@ public class UserMgr {
 	 * @return
 	 */
 	public XXPortalUser updateUser(VXPortalUser userProfile) {
-		XXPortalUser gjUser = daoManager.getXXPortalUser().getById(userProfile.getId());
+		XXPortalUser gjUser = daoManager.getXXPortalUser().getById(
+				userProfile.getId());
+
 		if (gjUser == null) {
 			logger.error("updateUser(). User not found. userProfile="
 					+ userProfile);
@@ -154,7 +162,6 @@ public class UserMgr {
 
 		// status
 		if (userProfile.getStatus() != gjUser.getStatus()) {
-			gjUser.setStatus(userProfile.getStatus());
 			updateUser = true;
 		}
 
@@ -163,12 +170,12 @@ public class UserMgr {
 		String emailAddress = userProfile.getEmailAddress();
 		if (stringUtil.isEmpty(emailAddress)) {
 			String randomString = GUIDUtil.genGUI();
-			gjUser.setEmailAddress(randomString);
+			userProfile.setEmailAddress(randomString);
 			updateUser = true;
 		} else {
 			if (stringUtil.validateEmail(emailAddress)) {
-				XXPortalUser checkUser = daoManager.getXXPortalUser().findByEmailAddress(
-						emailAddress);
+				XXPortalUser checkUser = daoManager.getXXPortalUser()
+						.findByEmailAddress(emailAddress);
 				if (checkUser != null) {
 					String loginId = userProfile.getLoginId();
 					if (loginId == null) {
@@ -183,11 +190,11 @@ public class UserMgr {
 												+ "you've provided already exists in system.",
 										MessageEnums.INVALID_INPUT_DATA);
 					} else {
-						gjUser.setEmailAddress(emailAddress);
+						userProfile.setEmailAddress(emailAddress);
 						updateUser = true;
 					}
 				} else {
-					gjUser.setEmailAddress(emailAddress);
+					userProfile.setEmailAddress(emailAddress);
 					updateUser = true;
 				}
 			} else {
@@ -207,7 +214,7 @@ public class UserMgr {
 		// firstName
 		if (!stringUtil.isEmpty(userProfile.getFirstName())
 				&& !userProfile.getFirstName().equals(gjUser.getFirstName())) {
-			gjUser.setFirstName(stringUtil.toCamelCaseAllWords(userProfile
+			userProfile.setFirstName(stringUtil.toCamelCaseAllWords(userProfile
 					.getFirstName()));
 			updateUser = true;
 		}
@@ -215,7 +222,7 @@ public class UserMgr {
 		// lastName allowed to be empty
 		if (userProfile.getLastName() != null
 				&& !userProfile.getLastName().equals(gjUser.getLastName())) {
-			gjUser.setLastName(stringUtil.toCamelCaseAllWords(userProfile
+			userProfile.setLastName(stringUtil.toCamelCaseAllWords(userProfile
 					.getLastName()));
 			updateUser = true;
 		}
@@ -224,26 +231,31 @@ public class UserMgr {
 		if (!stringUtil.isEmpty(userProfile.getPublicScreenName())
 				&& !userProfile.getPublicScreenName().equals(
 						gjUser.getPublicScreenName())) {
-			gjUser.setPublicScreenName(gjUser.getFirstName() + " "
-					+ gjUser.getLastName());
+			userProfile.setPublicScreenName(userProfile.getFirstName() + " "
+					+ userProfile.getLastName());
 			updateUser = true;
 		}
 
 		// notes
-		if (!stringUtil.isEmpty(userProfile.getNotes())
+		/*if (!stringUtil.isEmpty(userProfile.getNotes())
 				&& !userProfile.getNotes().equalsIgnoreCase(gjUser.getNotes())) {
-			gjUser.setNotes(userProfile.getNotes());
 			updateUser = true;
-		}
+		}*/
 
 		// userRoleList
-		updateRoles(userProfile.getId(),
-				userProfile.getUserRoleList());
+		updateRoles(userProfile.getId(), userProfile.getUserRoleList());
 
 		if (updateUser) {
-			gjUser = daoManager.getXXPortalUser().update(gjUser);
+
+			List<XXTrxLog> trxLogList = xPortalUserService.getTransactionLog(
+					userProfile, gjUser, "update");
+
+			userProfile.setPassword(gjUser.getPassword());
+			userProfile = xPortalUserService.updateResource(userProfile);
 			sessionMgr.resetUserSessionForProfiles(ContextUtil
 					.getCurrentUserSession());
+
+			msBizUtil.createTrxLog(trxLogList);
 		}
 
 		return gjUser;
@@ -311,8 +323,8 @@ public class UserMgr {
 	public VXResponse changePassword(VXPasswordChange pwdChange) {
 		// First let's get the XXPortalUser for the current logged in user
 		String currentUserLoginId = ContextUtil.getCurrentUserLoginId();
-		XXPortalUser gjUserCurrent = daoManager.getXXPortalUser().findByLoginId(
-				currentUserLoginId);
+		XXPortalUser gjUserCurrent = daoManager.getXXPortalUser()
+				.findByLoginId(currentUserLoginId);
 
 		String encryptedOldPwd = encrypt(gjUserCurrent.getLoginId(),
 				pwdChange.getOldPassword());
@@ -330,7 +342,8 @@ public class UserMgr {
 		}
 
 		// Get the user for whom we want to change the password
-		XXPortalUser gjUser = daoManager.getXXPortalUser().getById(pwdChange.getId());
+		XXPortalUser gjUser = daoManager.getXXPortalUser().getById(
+				pwdChange.getId());
 		if (gjUser == null) {
 			logger.warn("SECURITY:changePassword(). User not found. userId="
 					+ pwdChange.getId());
@@ -363,6 +376,21 @@ public class UserMgr {
 		String currentPassword = gjUser.getPassword();
 
 		if (!encryptedNewPwd.equals(currentPassword)) {
+
+			List<XXTrxLog> trxLogList = new ArrayList<XXTrxLog>();
+			XXTrxLog xTrxLog = new XXTrxLog();
+
+			xTrxLog.setAttributeName("Password");
+			xTrxLog.setPreviousValue(currentPassword);
+			xTrxLog.setNewValue(encryptedNewPwd);
+			xTrxLog.setAction("password change");
+			xTrxLog.setObjectClassType(AppConstants.CLASS_TYPE_PASSWORD_CHANGE);
+			xTrxLog.setObjectId(pwdChange.getId());
+			xTrxLog.setObjectName(pwdChange.getLoginId());
+			trxLogList.add(xTrxLog);
+
+			msBizUtil.createTrxLog(trxLogList);
+
 			gjUser.setPassword(encryptedNewPwd);
 			gjUser = daoManager.getXXPortalUser().update(gjUser);
 

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/f2034ba7/security-admin/src/main/java/com/xasecure/service/XPortalUserService.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/com/xasecure/service/XPortalUserService.java b/security-admin/src/main/java/com/xasecure/service/XPortalUserService.java
index f69eb60..2a81297 100644
--- a/security-admin/src/main/java/com/xasecure/service/XPortalUserService.java
+++ b/security-admin/src/main/java/com/xasecure/service/XPortalUserService.java
@@ -1,14 +1,47 @@
 package com.xasecure.service;
 
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import com.xasecure.common.AppConstants;
+import com.xasecure.common.StringUtil;
+import com.xasecure.common.view.VTrxLogAttr;
 import com.xasecure.entity.*;
+import com.xasecure.util.XAEnumUtil;
 import com.xasecure.view.*;
 
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Service;
 
 @Service
 @Scope("singleton")
-public class XPortalUserService extends XPortalUserServiceBase<XXPortalUser, VXPortalUser>
{
+public class XPortalUserService extends
+		XPortalUserServiceBase<XXPortalUser, VXPortalUser> {
+
+	@Autowired
+	XAEnumUtil xaEnumUtil;
+
+	@Autowired
+	StringUtil stringUtil;
+
+	static HashMap<String, VTrxLogAttr> trxLogAttrs = new HashMap<String, VTrxLogAttr>();
+	static {
+		trxLogAttrs.put("loginId",
+				new VTrxLogAttr("loginId", "Login ID", false));
+		trxLogAttrs.put("status", new VTrxLogAttr("status",
+				"Activation Status", false));
+		trxLogAttrs.put("firstName", new VTrxLogAttr("firstName", "First Name",
+				false));
+		trxLogAttrs.put("lastName", new VTrxLogAttr("lastName", "Last Name",
+				false));
+		trxLogAttrs.put("emailAddress", new VTrxLogAttr("emailAddress",
+				"Email Address", false));
+		trxLogAttrs.put("publicScreenName", new VTrxLogAttr("publicScreenName",
+				"Public Screen Name", false));
+	}
 
 	@Override
 	protected void validateForCreate(VXPortalUser vObj) {
@@ -22,4 +55,122 @@ public class XPortalUserService extends XPortalUserServiceBase<XXPortalUser,
VXP
 
 	}
 
+	public List<XXTrxLog> getTransactionLog(VXPortalUser vUser, String action) {
+		return getTransactionLog(vUser, null, action);
+	}
+
+	public List<XXTrxLog> getTransactionLog(VXPortalUser vObj,
+			XXPortalUser xObj, String action) {
+		if (vObj == null
+				&& (action == null || !action.equalsIgnoreCase("update"))) {
+			return null;
+		}
+
+		List<XXTrxLog> trxLogList = new ArrayList<XXTrxLog>();
+		Field[] fields = vObj.getClass().getDeclaredFields();
+
+		try {
+			Field nameField = vObj.getClass().getDeclaredField("loginId");
+			nameField.setAccessible(true);
+			String objectName = "" + nameField.get(vObj);
+
+			for (Field field : fields) {
+				field.setAccessible(true);
+				String fieldName = field.getName();
+				if (!trxLogAttrs.containsKey(fieldName)) {
+					continue;
+				}
+
+				VTrxLogAttr vTrxLogAttr = trxLogAttrs.get(fieldName);
+
+				XXTrxLog xTrxLog = new XXTrxLog();
+				xTrxLog.setAttributeName(vTrxLogAttr
+						.getAttribUserFriendlyName());
+
+				String value = null;
+				boolean isEnum = vTrxLogAttr.isEnum();
+				if (isEnum) {
+					String enumName = XXAsset.getEnumName(fieldName);
+					int enumValue = field.get(vObj) == null ? 0 : Integer
+							.parseInt("" + field.get(vObj));
+					value = xaEnumUtil.getLabel(enumName, enumValue);
+				} else {
+					value = "" + field.get(vObj);
+				}
+
+				if (action.equalsIgnoreCase("create")) {
+					if (stringUtil.isEmpty(value)) {
+						continue;
+					}
+					xTrxLog.setNewValue(value);
+				} else if (action.equalsIgnoreCase("delete")) {
+					xTrxLog.setPreviousValue(value);
+				} else if (action.equalsIgnoreCase("update")) {
+					String oldValue = null;
+					Field[] xFields = xObj.getClass().getDeclaredFields();
+
+					for (Field xField : xFields) {
+						xField.setAccessible(true);
+						String xFieldName = xField.getName();
+
+						if (fieldName.equalsIgnoreCase(xFieldName)) {
+							if (isEnum) {
+								String enumName = XXAsset
+										.getEnumName(xFieldName);
+								int enumValue = xField.get(xObj) == null ? 0
+										: Integer.parseInt(""
+												+ xField.get(xObj));
+								oldValue = xaEnumUtil.getLabel(enumName,
+										enumValue);
+							} else {
+								oldValue = xField.get(xObj) + "";
+							}
+							break;
+						}
+					}
+					if (fieldName.equalsIgnoreCase("emailAddress")) {
+						if (!stringUtil.validateEmail(oldValue)) {
+							oldValue = "";
+						}
+						if (!stringUtil.validateEmail(value)) {
+							value = "";
+						}
+					}
+					if (value.equalsIgnoreCase(oldValue)) {
+						continue;
+					}
+					xTrxLog.setPreviousValue(oldValue);
+					xTrxLog.setNewValue(value);
+				}
+
+				xTrxLog.setAction(action);
+				xTrxLog.setObjectClassType(AppConstants.CLASS_TYPE_USER_PROFILE);
+				xTrxLog.setObjectId(vObj.getId());
+				xTrxLog.setObjectName(objectName);
+				trxLogList.add(xTrxLog);
+			}
+		} catch (IllegalArgumentException e) {
+			logger.info(
+					"Caught IllegalArgumentException while"
+							+ " getting Transaction log for user : "
+							+ vObj.getLoginId(), e);
+		} catch (NoSuchFieldException e) {
+			logger.info(
+					"Caught NoSuchFieldException while"
+							+ " getting Transaction log for user : "
+							+ vObj.getLoginId(), e);
+		} catch (SecurityException e) {
+			logger.info(
+					"Caught SecurityException while"
+							+ " getting Transaction log for user : "
+							+ vObj.getLoginId(), e);
+		} catch (IllegalAccessException e) {
+			logger.info(
+					"Caught IllegalAccessException while"
+							+ " getting Transaction log for user : "
+							+ vObj.getLoginId(), e);
+		}
+		return trxLogList;
+	}
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/f2034ba7/security-admin/src/main/webapp/scripts/utils/XAEnums.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/utils/XAEnums.js b/security-admin/src/main/webapp/scripts/utils/XAEnums.js
index c4b7f67..b33238e 100644
--- a/security-admin/src/main/webapp/scripts/utils/XAEnums.js
+++ b/security-admin/src/main/webapp/scripts/utils/XAEnums.js
@@ -109,7 +109,7 @@ define(function(require) {
 		CLASS_TYPE_DATA_OBJECT:{value:4, label:'CLASS_TYPE_DATA_OBJECT', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_DATA_OBJECT',
modelName:'VXDataObject', type:'vXDataObject', tt: 'lbl.ClassTypes_CLASS_TYPE_DATA_OBJECT'},
 		CLASS_TYPE_NAMEVALUE:{value:5, label:'CLASS_TYPE_NAMEVALUE', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_NAMEVALUE',
tt: 'lbl.ClassTypes_CLASS_TYPE_NAMEVALUE'},
 		CLASS_TYPE_LONG:{value:6, label:'CLASS_TYPE_LONG', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_LONG',
modelName:'VXLong', type:'vXLong', tt: 'lbl.ClassTypes_CLASS_TYPE_LONG'},
-		CLASS_TYPE_PASSWORD_CHANGE:{value:7, label:'CLASS_TYPE_PASSWORD_CHANGE', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_PASSWORD_CHANGE',
modelName:'VXPasswordChange', type:'vXPasswordChange', tt: 'lbl.ClassTypes_CLASS_TYPE_PASSWORD_CHANGE'},
+		CLASS_TYPE_PASSWORD_CHANGE:{value:7, label:'Password Change', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_PASSWORD_CHANGE',
modelName:'VXPasswordChange', type:'vXPasswordChange', tt: 'lbl.ClassTypes_CLASS_TYPE_PASSWORD_CHANGE'},
 		CLASS_TYPE_STRING:{value:8, label:'CLASS_TYPE_STRING', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_STRING',
modelName:'VXString', type:'vXString', tt: 'lbl.ClassTypes_CLASS_TYPE_STRING'},
 		CLASS_TYPE_ENUM:{value:9, label:'CLASS_TYPE_ENUM', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_ENUM',
tt: 'lbl.ClassTypes_CLASS_TYPE_ENUM'},
 		CLASS_TYPE_ENUM_ELEMENT:{value:10, label:'CLASS_TYPE_ENUM_ELEMENT', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_ENUM_ELEMENT',
tt: 'lbl.ClassTypes_CLASS_TYPE_ENUM_ELEMENT'},

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/f2034ba7/security-admin/src/main/webapp/scripts/views/policy/PolicyForm.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/views/policy/PolicyForm.js b/security-admin/src/main/webapp/scripts/views/policy/PolicyForm.js
index 482da7b..9f91148 100644
--- a/security-admin/src/main/webapp/scripts/views/policy/PolicyForm.js
+++ b/security-admin/src/main/webapp/scripts/views/policy/PolicyForm.js
@@ -424,7 +424,24 @@ define(function(require){
 						return false;
 					}
 					
-				}
+				},
+				beforeTagAdded: function(event, ui) {
+			        // do something special
+					that.fields.name.$el.removeClass('error');
+		        	that.fields.name.$el.find('.help-inline').html('');
+					var tags =  [];
+			        console.log(ui.tag);
+			        if(ui.tagLabel.lastIndexOf('/') == ui.tagLabel.length -1 ){
+			        	tags = ui.tagLabel.substr(0,ui.tagLabel.lastIndexOf('/'));
+			        	that.fields.name.$el.addClass('error');
+			        	that.fields.name.$el.find('.help-inline').html('Please enter valid resource path
: ' + ui.tagLabel);
+			        	return false;
+			        }
+//			        this.value = tags;
+			        /*if(_.contains(ui.tagLabel,','))
+			        	tags = ui.tagLabel.split(',');
+			        	this.value = tags;*/
+					}
 			});
 			/*this.fields.name.editor.$el.tagit({
 				beforeTagAdded: function(event, ui) {

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/f2034ba7/security-admin/src/main/webapp/scripts/views/reports/AuditLayout.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/views/reports/AuditLayout.js b/security-admin/src/main/webapp/scripts/views/reports/AuditLayout.js
index 94ae09f..63b41f6 100644
--- a/security-admin/src/main/webapp/scripts/views/reports/AuditLayout.js
+++ b/security-admin/src/main/webapp/scripts/views/reports/AuditLayout.js
@@ -358,7 +358,7 @@ define(function(require) {
 										callback(auditList);
 										break;
 									case 'Actions':
-										callback(["create","update","delete"]);
+										callback(["create","update","delete","password change"]);
 										break;
 									case 'Start Date' :
 											var endDate, models = that.visualSearch.searchQuery.where({category:"End Date"});
@@ -611,6 +611,10 @@ define(function(require) {
 								html = 	'User '+action+'d '+'<b>'+name+'</b>';//'<a tabindex="-1"
href="javascript:;" title="'+name+'">'+name+'</a>';
 							if(rawValue == XAEnums.ClassTypes.CLASS_TYPE_XA_GROUP.value)
 								html = 	'Group '+action+'d '+'<b>'+name+'</b>';//'<a tabindex="-1"
href="javascript:;" title="'+name+'">'+name+'</a>';
+							if(rawValue  == XAEnums.ClassTypes.CLASS_TYPE_USER_PROFILE.value)
+								html = 	'User profile '+action+'d '+'<b>'+name+'</b>';//'<a tabindex="-1"
href="javascript:;" title="'+name+'">'+name+'</a>';
+							if(rawValue  == XAEnums.ClassTypes.CLASS_TYPE_PASSWORD_CHANGE.value)
+								html = 	'User profile '+action+'d '+'<b>'+name+'</b>';//'<a tabindex="-1"
href="javascript:;" title="'+name+'">'+name+'</a>';
 							return html;
 						}
 					})

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/f2034ba7/security-admin/src/main/webapp/scripts/views/user/UserProfile.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/views/user/UserProfile.js b/security-admin/src/main/webapp/scripts/views/user/UserProfile.js
index dbcde1f..5fc6cec 100644
--- a/security-admin/src/main/webapp/scripts/views/user/UserProfile.js
+++ b/security-admin/src/main/webapp/scripts/views/user/UserProfile.js
@@ -149,7 +149,7 @@ define(function(require){
 			var that = this;
 			var vPasswordChange = new VPasswordChange();
 			vPasswordChange.set({
-				loginId : this.model.get('id'),
+				loginId : this.model.get('loginId'),
 				emailAddress :this.model.get('emailAddress'), 
 				oldPassword : this.model.get('oldPassword'),
 				updPassword : this.model.get('newPassword')

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/f2034ba7/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 ecf54bd..16f2c1d 100644
--- a/security-admin/src/main/webapp/styles/xa.css
+++ b/security-admin/src/main/webapp/styles/xa.css
@@ -1627,4 +1627,7 @@ body.login {
 }
 .label-inverse {
 background-color: #444444;
+}
+.alert {
+	border:none;
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/f2034ba7/security-admin/src/main/webapp/templates/reports/PolicyOperationDiff_tmpl.html
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/templates/reports/PolicyOperationDiff_tmpl.html
b/security-admin/src/main/webapp/templates/reports/PolicyOperationDiff_tmpl.html
index 51b7808..913aba4 100644
--- a/security-admin/src/main/webapp/templates/reports/PolicyOperationDiff_tmpl.html
+++ b/security-admin/src/main/webapp/templates/reports/PolicyOperationDiff_tmpl.html
@@ -1,5 +1,5 @@
 <div class="diff-content">
-	<label class="no-margin label-size13-weightbold">ID : {{objectId}}</label>
+	<label class="no-margin label-size13-weightbold">Name : {{objectName}}</label>
 	<label class="no-margin label-size13-weightbold">Repository Type : {{repositoryType}}</label>
 	<label class="no-margin label-size13-weightbold"> Date  &nbsp;&nbsp;:  {{objectCreatedDate}}</label>
 	<label class="no-margin label-size13-weightbold" > Created By  &nbsp;&nbsp;:
 {{userName}}</label>


Mime
View raw message