Yair Zaslavsky has uploaded a new change for review. Change subject: aaa: change groupNames to be a set ......................................................................
aaa: change groupNames to be a set Change-Id: Ia0e6151cade614446f6343c579ed572754e09db2 Topic: AAA Signed-off-by: Yair Zaslavsky <yzasl...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/DbUserCacheManager.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DbUser.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java M backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/DbUserDAOTest.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendUserResourceTest.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendUsersResourceTest.java M backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UserMapper.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/UserGroupListModel.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabUserView.java 9 files changed, 42 insertions(+), 31 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/82/29582/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/DbUserCacheManager.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/DbUserCacheManager.java index 467621e..9327143 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/DbUserCacheManager.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/DbUserCacheManager.java @@ -1,7 +1,6 @@ package org.ovirt.engine.core.bll; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -248,10 +247,10 @@ groupNamesFromDirectory.add(directoryGroup.getName()); } Collections.sort(groupNamesFromDirectory); - List<String> groupNamesFromDb = Arrays.asList(dbUser.getGroupNames().split(",")); + List<String> groupNamesFromDb = new ArrayList<String>(dbUser.getGroupNames()); Collections.sort(groupNamesFromDb); if (!groupNamesFromDb.equals(groupNamesFromDirectory)) { - dbUser.setGroupNames(StringUtils.join(groupNamesFromDirectory, ",")); + dbUser.setGroupNames(new HashSet<String>(groupNamesFromDirectory)); update = true; } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DbUser.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DbUser.java index f25590e..070dba2 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DbUser.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DbUser.java @@ -1,5 +1,6 @@ package org.ovirt.engine.core.common.businessentities; +import java.util.Arrays; import java.util.HashSet; import javax.validation.constraints.Size; @@ -63,12 +64,7 @@ */ private boolean isAdmin; - - /** - * Comma delimited list of group names. - */ - @Size(min = 1, max = BusinessEntitiesDefinitions.GENERAL_MAX_SIZE) - private String groupNames; + private HashSet<String> groupNames; /** * Comma delimited list of group identifiers. @@ -80,7 +76,7 @@ firstName = ""; lastName = ""; department = ""; - groupNames = ""; + groupNames = new HashSet<String>(); groupIds = new HashSet<Guid>(); role = ""; note = ""; @@ -96,7 +92,7 @@ department = ldapUser.getDepartment(); email = ldapUser.getEmail(); active = true; - groupNames = ldapUser.getGroup(); + groupNames = new HashSet<String>(Arrays.asList(ldapUser.getGroup().split(","))); role = ""; note = ""; } @@ -114,11 +110,9 @@ role = ""; note = ""; - StringBuilder namesBuffer = new StringBuilder(); for (DirectoryGroup directoryGroup : directoryUser.getGroups()) { - populateGroupNames(namesBuffer, directoryGroup); + groupNames.add(directoryGroup.getName()); } - groupNames = namesBuffer.toString(); } public Guid getId() { @@ -193,11 +187,11 @@ email = value; } - public String getGroupNames() { + public HashSet<String> getGroupNames() { return groupNames; } - public void setGroupNames(String value) { + public void setGroupNames(HashSet<String> value) { groupNames = value; } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java index ebbdeed..bc5c37a 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java @@ -2,6 +2,7 @@ import java.sql.ResultSet; import java.sql.SQLException; +import java.util.Arrays; import java.util.HashSet; import java.util.List; @@ -28,7 +29,7 @@ entity.setDepartment(rs.getString("department")); entity.setDomain(rs.getString("domain")); entity.setEmail(rs.getString("email")); - entity.setGroupNames(rs.getString("groups")); + entity.setGroupNames(new HashSet<String>(Arrays.asList(rs.getString("groups").split(",")))); entity.setFirstName(rs.getString("name")); entity.setNote(rs.getString("note")); entity.setNote(rs.getString("note")); @@ -63,7 +64,7 @@ addValue("department", user.getDepartment()); addValue("domain", user.getDomain()); addValue("email", user.getEmail()); - addValue("groups", user.getGroupNames()); + addValue("groups", StringUtils.join(user.getGroupNames(), ",")); addValue("name", user.getFirstName()); addValue("note", user.getNote()); addValue("role", user.getRole()); diff --git a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/DbUserDAOTest.java b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/DbUserDAOTest.java index b25326b..b6b258a 100644 --- a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/DbUserDAOTest.java +++ b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/DbUserDAOTest.java @@ -6,6 +6,8 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import java.util.Arrays; +import java.util.HashSet; import java.util.List; import org.junit.Before; @@ -41,7 +43,7 @@ newUser.setLoginName("newuser"); newUser.setEmail("newu...@redhat.com"); newUser.setDomain("domain"); - newUser.setGroupNames("groups"); + newUser.setGroupNames(new HashSet<String>(Arrays.asList("groups"))); newUser.setNamespace("*"); } diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendUserResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendUserResourceTest.java index 37d33b6..355acfe2 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendUserResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendUserResourceTest.java @@ -3,6 +3,9 @@ import static org.ovirt.engine.api.restapi.resource.BackendUsersResourceTest.GROUPS; import static org.ovirt.engine.api.restapi.resource.BackendUsersResourceTest.PARSED_GROUPS; +import java.util.Arrays; +import java.util.HashSet; + import javax.ws.rs.WebApplicationException; import org.junit.Test; @@ -88,7 +91,7 @@ entity.setId(GUIDS[index]); entity.setExternalId(EXTERNAL_IDS[index]); entity.setFirstName(NAMES[index]); - entity.setGroupNames(GROUPS); + entity.setGroupNames(new HashSet<String>(Arrays.asList(GROUPS.split(",")))); entity.setDomain(DOMAIN); return entity; } @@ -99,10 +102,11 @@ assertNotNull(model.getDomain()); assertTrue(model.isSetGroups()); assertEquals(PARSED_GROUPS.length, model.getGroups().getGroups().size()); - for (int i = 0; i < PARSED_GROUPS.length; i++) { - Group group = model.getGroups().getGroups().get(i); - assertEquals(PARSED_GROUPS[i], group.getName()); + HashSet<String> groupNames = new HashSet<>(); + for (Group group : model.getGroups().getGroups()) { + groupNames.add(group.getName()); } + assertEquals(new HashSet<String>(Arrays.asList(PARSED_GROUPS)), groupNames); verifyLinks(model); } } diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendUsersResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendUsersResourceTest.java index a273350..021045b 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendUsersResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendUsersResourceTest.java @@ -1,5 +1,7 @@ package org.ovirt.engine.api.restapi.resource; +import java.util.Arrays; +import java.util.HashSet; import java.util.LinkedList; import java.util.List; @@ -209,7 +211,7 @@ entity.setId(GUIDS[index]); entity.setExternalId(EXTERNAL_IDS[index]); entity.setLoginName(NAMES[index]); - entity.setGroupNames(GROUPS); + entity.setGroupNames(new HashSet<String>(Arrays.asList(GROUPS.split(",")))); entity.setNamespace(NAMESPACE); entity.setDomain(DOMAIN); return entity; @@ -227,10 +229,11 @@ assertEquals(new Guid(DOMAIN.getBytes(), true).toString(), model.getDomain().getId()); assertTrue(model.isSetGroups()); assertEquals(PARSED_GROUPS.length, model.getGroups().getGroups().size()); - for (int i = 0; i < PARSED_GROUPS.length; i++) { - Group group = model.getGroups().getGroups().get(i); - assertEquals(PARSED_GROUPS[i], group.getName()); + HashSet<String> groupNames = new HashSet<>(); + for (Group group : model.getGroups().getGroups()) { + groupNames.add(group.getName()); } + assertEquals(new HashSet<String>(Arrays.asList(PARSED_GROUPS)), groupNames); verifyLinks(model); } diff --git a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UserMapper.java b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UserMapper.java index c4bc780..94b61d6 100644 --- a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UserMapper.java +++ b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UserMapper.java @@ -25,9 +25,9 @@ model.setDepartment(entity.getDepartment()); model.setDomainEntryId(DirectoryEntryIdUtils.encode(entity.getExternalId())); model.setNamespace(entity.getNamespace()); - if (entity.getGroupNames() != null && entity.getGroupNames().trim().length() > 0) { + if (entity.getGroupNames() != null && entity.getGroupNames().size() > 0) { model.setGroups(new Groups()); - for (String name : entity.getGroupNames().split(",")) { + for (String name : entity.getGroupNames()) { Group group = new Group(); group.setName(name); model.getGroups().getGroups().add(group); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/UserGroupListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/UserGroupListModel.java index b0ca28e..d74b826 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/UserGroupListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/UserGroupListModel.java @@ -37,7 +37,7 @@ if (getEntity() != null) { ArrayList<UserGroup> items = new ArrayList<UserGroup>(); - for (String groupFullName : getEntity().getGroupNames().split("[,]", -1)) //$NON-NLS-1$ + for (String groupFullName : getEntity().getGroupNames()) { items.add(createUserGroup(groupFullName)); } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabUserView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabUserView.java index 14da0df..e356454 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabUserView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabUserView.java @@ -59,7 +59,15 @@ getTable().addColumn(new TextColumnWithTooltip<DbUser>() { @Override public String getValue(DbUser object) { - return object.getGroupNames(); + StringBuilder builder = new StringBuilder(); + int counter = 0; + for (String name : object.getGroupNames()) { + builder.append(name); + if (counter < object.getGroupNames().size() - 1) { + builder.append(","); + } + } + return builder.toString(); } }, constants.groupUser(), "150px"); //$NON-NLS-1$ -- To view, visit http://gerrit.ovirt.org/29582 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ia0e6151cade614446f6343c579ed572754e09db2 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yair Zaslavsky <yzasl...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches