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 2019/03/22 09:10:56 UTC
[ranger] branch master updated: RANGER-2373 : User creation POST
and PUT response not showing groupIdList and groupNameList with expected
data
This is an automated email from the ASF dual-hosted git repository.
mehul pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/master by this push:
new 7c52a79 RANGER-2373 : User creation POST and PUT response not showing groupIdList and groupNameList with expected data
7c52a79 is described below
commit 7c52a79a5d0b41bfc94caca9d531e0fefba2bfe7
Author: Nikhil P <ni...@gmail.com>
AuthorDate: Fri Mar 22 12:43:39 2019 +0530
RANGER-2373 : User creation POST and PUT response not showing groupIdList and groupNameList with expected data
Signed-off-by: Mehul Parikh <me...@apache.org>
---
.../main/java/org/apache/ranger/biz/XUserMgr.java | 47 +++++++++++++---------
.../java/org/apache/ranger/biz/TestXUserMgr.java | 7 ++++
2 files changed, 34 insertions(+), 20 deletions(-)
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java b/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
index fc40917..6edfabb 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
@@ -222,7 +222,7 @@ public class XUserMgr extends XUserMgrBase {
String hiddenPassword = PropertiesUtil.getProperty("ranger.password.hidden", "*****");
createdXUser.setPassword(hiddenPassword);
-
+ Collection<String> groupNamesList = new ArrayList<String>();
Collection<Long> groupIdList = vXUser.getGroupIdList();
List<VXGroupUser> vXGroupUsers = new ArrayList<VXGroupUser>();
if (groupIdList != null) {
@@ -232,8 +232,11 @@ public class XUserMgr extends XUserMgrBase {
// trxLogList.addAll(xGroupUserService.getTransactionLog(
// vXGroupUser, "create"));
vXGroupUsers.add(vXGroupUser);
+ groupNamesList.add(vXGroupUser.getName());
}
}
+ createdXUser.setGroupIdList(groupIdList);
+ createdXUser.setGroupNameList(groupNamesList);
for (VXGroupUser vXGroupUser : vXGroupUsers) {
trxLogList.addAll(xGroupUserService.getTransactionLog(vXGroupUser,
"create"));
@@ -474,13 +477,22 @@ public class XUserMgr extends XUserMgrBase {
Long userId = vXUser.getId();
List<Long> groupUsersToRemove = new ArrayList<Long>();
+ trxLogList.addAll(createOrDelGrpUserWithUpdatedGrpId(vXUser, groupIdList,userId, groupUsersToRemove));
+ xaBizUtil.createTrxLog(trxLogList);
+ return vXUser;
+ }
+ private List<XXTrxLog> createOrDelGrpUserWithUpdatedGrpId(VXUser vXUser, Collection<Long> groupIdList,Long userId, List<Long> groupUsersToRemove) {
+ Collection<String> groupNamesSet = new HashSet<String>();
+ List<XXTrxLog> trxLogList = new ArrayList<>();
if (groupIdList != null) {
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.addParam("xUserId", userId);
- VXGroupUserList vXGroupUserList = xGroupUserService
- .searchXGroupUsers(searchCriteria);
+ VXGroupUserList vXGroupUserList = xGroupUserService.searchXGroupUsers(searchCriteria);
List<VXGroupUser> vXGroupUsers = vXGroupUserList.getList();
+ for(VXGroupUser eachVXGrpUser : vXGroupUsers) {
+ groupNamesSet.add(eachVXGrpUser.getName());
+ }
if (vXGroupUsers != null) {
@@ -494,10 +506,9 @@ public class XUserMgr extends XUserMgrBase {
}
}
if (!found) {
- VXGroupUser vXGroupUser = createXGroupUser(userId,
- groupId);
- trxLogList.addAll(xGroupUserService.getTransactionLog(
- vXGroupUser, "create"));
+ VXGroupUser vXGroupUser = createXGroupUser(userId, groupId);
+ trxLogList.addAll(xGroupUserService.getTransactionLog(vXGroupUser, "create"));
+ groupNamesSet.add(vXGroupUser.getName());
}
}
@@ -506,41 +517,37 @@ public class XUserMgr extends XUserMgrBase {
boolean found = false;
for (Long groupId : groupIdList) {
if (groupId.equals(vXGroupUser.getParentGroupId())) {
- trxLogList.addAll(xGroupUserService
- .getTransactionLog(vXGroupUser, "update"));
+ trxLogList.addAll(xGroupUserService.getTransactionLog(vXGroupUser, "update"));
found = true;
break;
}
}
if (!found) {
// TODO I've to get the transaction log from here.
- trxLogList.addAll(xGroupUserService.getTransactionLog(
- vXGroupUser, "delete"));
+ trxLogList.addAll(xGroupUserService.getTransactionLog(vXGroupUser, "delete"));
groupUsersToRemove.add(vXGroupUser.getId());
// xGroupUserService.deleteResource(vXGroupUser.getId());
+ groupNamesSet.remove(vXGroupUser.getName());
}
}
} else {
for (Long groupId : groupIdList) {
VXGroupUser vXGroupUser = createXGroupUser(userId, groupId);
- trxLogList.addAll(xGroupUserService.getTransactionLog(
- vXGroupUser, "create"));
+ trxLogList.addAll(xGroupUserService.getTransactionLog(vXGroupUser, "create"));
+ groupNamesSet.add(vXGroupUser.getName());
}
}
vXUser.setGroupIdList(groupIdList);
+ vXUser.setGroupNameList(new ArrayList<>(groupNamesSet));
} else {
- logger.debug("Group id list can't be null for user. Group user "
- + "mapping not updated for user : " + userId);
+ logger.debug(
+ "Group id list can't be null for user. Group user " + "mapping not updated for user : " + userId);
}
-
- xaBizUtil.createTrxLog(trxLogList);
-
for (Long groupUserId : groupUsersToRemove) {
xGroupUserService.deleteResource(groupUserId);
}
-
- return vXUser;
+ return trxLogList;
}
public VXUserGroupInfo createXUserGroupFromMap(VXUserGroupInfo vXUserGroupInfo) {
diff --git a/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java b/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java
index 49c57a6..23d3568 100644
--- a/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java
+++ b/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java
@@ -571,7 +571,13 @@ public class TestXUserMgr {
groupIdList.add(userId);
vxUser.setGroupIdList(groupIdList);
VXGroup vxGroup = vxGroup();
+ vxGroup.setName("user12Grp");
+ VXGroupUser vXGroupUser = new VXGroupUser();
+ vXGroupUser.setParentGroupId(userId);
+ vXGroupUser.setUserId(userId);
+ vXGroupUser.setName(vxGroup.getName());
Mockito.when(xGroupService.readResource(userId)).thenReturn(vxGroup);
+ Mockito.when(xGroupUserService.createResource((VXGroupUser) Mockito.any())).thenReturn(vXGroupUser);
ArrayList<String> userRoleListVXPortaUser = getRoleList();
VXPortalUser vXPortalUser = new VXPortalUser();
vXPortalUser.setUserRoleList(userRoleListVXPortaUser);
@@ -607,6 +613,7 @@ public class TestXUserMgr {
Assert.assertEquals(dbvxUser.getDescription(), vxUser.getDescription());
Assert.assertEquals(dbvxUser.getName(), vxUser.getName());
Assert.assertEquals(dbvxUser.getUserRoleList(),vxUser.getUserRoleList());
+ Assert.assertEquals(dbvxUser.getGroupIdList(),vxUser.getGroupIdList());
Assert.assertEquals(dbvxUser.getGroupNameList(),vxUser.getGroupNameList());
Mockito.verify(xUserService).readResourceWithOutLogin(userId);
}