Juan Hernandez has uploaded a new change for review.

Change subject: restapi: Fix group search and add
......................................................................

restapi: Fix group search and add

The RESTAPI doesn't currently accept group names with the format
domain/organization/group. This patch fixes that.

Change-Id: Iffb4ba829d5e07b46c0bb6d71e46bdbdbcb2442c
Bug-Url: https://bugzilla.redhat.com/1057214
Signed-off-by: Juan Hernandez <[email protected]>
---
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendGroupsResource.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendGroupsResourceTest.java
M 
backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ADSyntaxChecker.java
3 files changed, 17 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/05/24205/1

diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendGroupsResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendGroupsResource.java
index 7e74317..9f828ee 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendGroupsResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendGroupsResource.java
@@ -194,10 +194,17 @@
 
         // Try to find a group that matches the name contained in the model:
         if (groupModel.isSetName()) {
+            String groupName = groupModel.getName();
+            if (groupName.startsWith(directoryName + "/")) {
+                int lastSlash = groupName.lastIndexOf("/");
+                if (lastSlash != -1) {
+                    groupName = groupName.substring(lastSlash + 1);
+                }
+            }
             return getEntity(
                 DirectoryGroup.class,
                 SearchType.DirectoryGroup,
-                getDirectoryGroupSearchPattern(groupModel.getName(), 
directoryName)
+                getDirectoryGroupSearchPattern(groupName, directoryName)
             );
         }
 
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendGroupsResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendGroupsResourceTest.java
index 21e4686..df37608 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendGroupsResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendGroupsResourceTest.java
@@ -240,7 +240,7 @@
     public void testAddGroupWithImplicitDirectoryName() throws Exception {
         setUriInfo(setUpBasicUriExpectations());
         setUpGetEntityExpectations(
-            "ADGROUP@" + DOMAIN + ": allnames=" + GROUP_NAMES[0],
+            "ADGROUP@" + DOMAIN + ": allnames=" + NAMES[0],
             SearchType.DirectoryGroup,
             getDirectoryGroup(0)
         );
diff --git 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ADSyntaxChecker.java
 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ADSyntaxChecker.java
index 27932c8..d4c94b1 100644
--- 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ADSyntaxChecker.java
+++ 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ADSyntaxChecker.java
@@ -268,7 +268,8 @@
         StringBuilder retval = new StringBuilder();
         if (syntax.getvalid()) {
             IConditionFieldAutoCompleter conditionFieldAC;
-            if (syntax.getSearchObjectStr().toUpperCase().contains("ADUSER")) {
+            boolean searchingUsers = 
syntax.getSearchObjectStr().toUpperCase().contains("ADUSER");
+            if (searchingUsers) {
                 retval.append("(&");
                 retval.append("(" + USER_ACCOUNT_TYPE + ")");
                 conditionFieldAC = new AdUserConditionFieldAutoCompleter();
@@ -283,7 +284,12 @@
                 switch (so.getType()) {
                 case CONDITION_FIELD:
                     if ("ALLNAMES".equals(so.getBody())) {
-                        phrase.append(" 
(|($GIVENNAME={value})(sn={value})($USER_ACCOUNT_NAME={value})($PRINCIPAL_NAME={value}))");
+                        if (searchingUsers) {
+                            phrase.append(" 
(|($GIVENNAME={value})(sn={value})($USER_ACCOUNT_NAME={value})($PRINCIPAL_NAME={value}))");
+                        }
+                        else {
+                            phrase.append(" (|($CN={value}))");
+                        }
                         /**
                          * mark this search as findAll for later use
                          */


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iffb4ba829d5e07b46c0bb6d71e46bdbdbcb2442c
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Juan Hernandez <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to