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

Reply via email to