Alon Bar-Lev has uploaded a new change for review.

Change subject: aaa: fix flatGroups recursive
......................................................................

aaa: fix flatGroups recursive

incorrect get of groups of group record from principal record.

also clean up the implementation to simplify.

Topic: AAA
Change-Id: Ief72097b8248ffb0c8d51d170a463453170b51c4
Signed-off-by: Alon Bar-Lev <alo...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/DirectoryUtils.java
1 file changed, 11 insertions(+), 13 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/48/29948/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/DirectoryUtils.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/DirectoryUtils.java
index c73e01c..46634fe 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/DirectoryUtils.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/DirectoryUtils.java
@@ -6,10 +6,11 @@
 import java.util.HashSet;
 import java.util.List;
 
+import org.ovirt.engine.api.extensions.ExtKey;
 import org.ovirt.engine.api.extensions.ExtMap;
-import org.ovirt.engine.api.extensions.aaa.Authz;
 import org.ovirt.engine.api.extensions.aaa.Authz.GroupRecord;
 import org.ovirt.engine.api.extensions.aaa.Authz.PrincipalRecord;
+import org.ovirt.engine.api.extensions.aaa.Authz;
 import org.ovirt.engine.core.common.businessentities.DbGroup;
 import org.ovirt.engine.core.common.businessentities.DbUser;
 import org.ovirt.engine.core.compat.Guid;
@@ -177,11 +178,16 @@
         return new DbGroup(mapGroupRecordToDirectoryGroup(directory, 
groupRecord));
     }
 
-
     public static void flatGroups(ExtMap principal) {
-        List<ExtMap> accumulator = new ArrayList<>();
-        flatGroups(accumulator, principal.get(GroupRecord.GROUPS, 
Collections.<ExtMap> emptyList()));
-        principal.put(GroupRecord.GROUPS, accumulator);
+        principal.put(PrincipalRecord.GROUPS, flatGroups(principal, 
PrincipalRecord.GROUPS, new ArrayList<ExtMap>()));
+    }
+
+    private static List<ExtMap> flatGroups(ExtMap entity, ExtKey key, 
List<ExtMap> accumulator) {
+        for (ExtMap group : entity.get(key, Collections.<ExtMap> emptyList())) 
{
+            accumulator.add(group);
+            flatGroups(group, GroupRecord.GROUPS, accumulator);
+        }
+        return accumulator;
     }
 
     public static List<DirectoryGroup> mapGroupRecordsToDirectoryGroups(final 
String authzName, final List<ExtMap> groups) {
@@ -226,14 +232,6 @@
                     
directoryGroups.add(mapGroupRecordToDirectoryGroup(AuthzUtils.getName(extension),
 group));
                 }
                 return directoryGroups;
-    }
-
-    private static void flatGroups(List<ExtMap> accumulator, List<ExtMap> 
groupsFrom) {
-        for (ExtMap group : groupsFrom) {
-            flatGroups(accumulator, group.get(GroupRecord.GROUPS, 
Collections.<ExtMap> emptyList()));
-            accumulator.add(group);
-        }
-
     }
 
 }


-- 
To view, visit http://gerrit.ovirt.org/29948
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ief72097b8248ffb0c8d51d170a463453170b51c4
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Alon Bar-Lev <alo...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to