You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by sn...@apache.org on 2014/08/26 00:44:08 UTC
git commit: ARGUS-20: fixed to do audit log of user profile update
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 <sn...@apache.org>
Authored: Mon Aug 25 15:37:55 2014 -0700
Committer: sneethiraj <sn...@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 : {{objectCreatedDate}}</label>
<label class="no-margin label-size13-weightbold" > Created By : {{userName}}</label>