RANGER-2619 : Admin Audit Details not displayed for edit role
Signed-off-by: Mehul Parikh <mehul@apache.org>
diff --git a/security-admin/src/main/java/org/apache/ranger/common/RangerConstants.java b/security-admin/src/main/java/org/apache/ranger/common/RangerConstants.java
index 17d74d5..bb79bb8 100644
--- a/security-admin/src/main/java/org/apache/ranger/common/RangerConstants.java
+++ b/security-admin/src/main/java/org/apache/ranger/common/RangerConstants.java
@@ -42,6 +42,7 @@
public final static String GROUP_PUBLIC = "public";
public final static String ROLE_ADMIN_AUDITOR = "ROLE_ADMIN_AUDITOR";
public final static String ROLE_KEY_ADMIN_AUDITOR = "ROLE_KEY_ADMIN_AUDITOR";
+ public final static String ROLE_FIELD = "Roles";
// Action constants
public final static String ACTION_EDIT = "edit";
public final static String ACTION_CHANGE = "change";
diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerRoleService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerRoleService.java
index ce2dc35..9699aa7 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/RangerRoleService.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/RangerRoleService.java
@@ -178,15 +178,15 @@
} else {
value = "" + field.get(current);
if (fieldName.equalsIgnoreCase(users) || fieldName.equalsIgnoreCase(groups)
- || fieldName.equalsIgnoreCase("Roles")) {
+ || fieldName.equalsIgnoreCase(RangerConstants.ROLE_FIELD)) {
if (fieldName.equalsIgnoreCase(users)) {
- value = !stringUtil.isEmpty(current.getUsers()) ? JsonUtils.listToJson(current.getUsers()) : null;
+ value = JsonUtils.listToJson(current.getUsers());
}
- if (fieldName.equalsIgnoreCase(groups)) {
- value = !stringUtil.isEmpty(current.getGroups()) ? JsonUtils.listToJson(current.getGroups()) : null;
+ else if (fieldName.equalsIgnoreCase(groups)) {
+ value = JsonUtils.listToJson(current.getGroups());
}
- if (fieldName.equalsIgnoreCase("Roles")) {
- value = !stringUtil.isEmpty(current.getRoles()) ? JsonUtils.listToJson(current.getRoles()) : null;
+ else if (fieldName.equalsIgnoreCase(RangerConstants.ROLE_FIELD)) {
+ value = JsonUtils.listToJson(current.getRoles());
}
}
if ((value == null || "null".equalsIgnoreCase(value))
@@ -218,22 +218,24 @@
else {
formerValue = mField.get(former) + "";
if (fieldName.equalsIgnoreCase(users) || fieldName.equalsIgnoreCase(groups)
- || fieldName.equalsIgnoreCase("Roles")) {
+ || fieldName.equalsIgnoreCase(RangerConstants.ROLE_FIELD)) {
if (fieldName.equalsIgnoreCase(users)) {
- formerValue = !stringUtil.isEmpty(former.getUsers()) ? JsonUtils.listToJson(former.getUsers()) : null;
+ formerValue = JsonUtils.listToJson(former.getUsers());
}
- if (fieldName.equalsIgnoreCase(groups)) {
- formerValue = !stringUtil.isEmpty(former.getGroups()) ? JsonUtils.listToJson(former.getGroups()) : null;
+ else if (fieldName.equalsIgnoreCase(groups)) {
+ formerValue = JsonUtils.listToJson(former.getGroups());
}
- if (fieldName.equalsIgnoreCase("Roles")) {
- formerValue = !stringUtil.isEmpty(former.getRoles()) ? JsonUtils.listToJson(former.getRoles()) : null;
+ else if (fieldName.equalsIgnoreCase(RangerConstants.ROLE_FIELD)) {
+ formerValue = JsonUtils.listToJson(former.getRoles());
}
}
}
break;
}
}
- if (formerValue == null || formerValue.equalsIgnoreCase(value)) {
+ value = ((value == null) ? "" : value);
+ formerValue = ((formerValue == null) ? "" : formerValue);
+ if (formerValue.equalsIgnoreCase(value)) {
continue;
}
xTrxLog.setPreviousValue(formerValue);
@@ -248,12 +250,7 @@
if(logger.isDebugEnabled()) {
logger.debug("trxLogList is empty!!");
}
- XXTrxLog xTrxLog = new XXTrxLog();
- xTrxLog.setAction(action);
- xTrxLog.setObjectClassType(AppConstants.CLASS_TYPE_RANGER_ROLE);
- xTrxLog.setObjectId(current.getId());
- xTrxLog.setObjectName(objectName);
- trxLogList.add(xTrxLog);
+ trxLogList = null;
}
} catch (IllegalAccessException e) {
logger.error("Transaction log failure.", e);