Extensive usage of SyncopeConstants.ROOT_REALM + review group search only when 
entitlement is owned


Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/d420c398
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/d420c398
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/d420c398

Branch: refs/heads/2_0_X
Commit: d420c398f58495b7e46ae7128245382940cb7004
Parents: f07fadc
Author: Francesco Chicchiriccò <ilgro...@apache.org>
Authored: Tue Jul 24 09:47:28 2018 +0200
Committer: Francesco Chicchiriccò <ilgro...@apache.org>
Committed: Tue Jul 24 10:05:51 2018 +0200

----------------------------------------------------------------------
 .../console/panels/GroupDirectoryPanel.java     |  4 +--
 .../console/panels/RoleDirectoryPanel.java      |  7 +++--
 .../panels/search/AbstractSearchPanel.java      | 12 ++++----
 .../panels/search/AnyObjectSearchPanel.java     |  4 ++-
 .../panels/search/SearchClausePanel.java        |  7 +++--
 .../console/panels/search/UserSearchPanel.java  |  1 -
 .../client/console/rest/GroupRestClient.java    | 32 ++------------------
 .../client/console/wizards/any/Groups.java      |  7 +++--
 8 files changed, 26 insertions(+), 48 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/d420c398/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java
index 6bef561..188e21a 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java
@@ -116,7 +116,7 @@ public class GroupDirectoryPanel extends 
AnyDirectoryPanel<GroupTO, GroupRestCli
 
                             panel = new UserDirectoryPanel.Builder(
                                     
classRestClient.list(anyTypeTO.getClasses()), anyTypeTO.getKey(), pageRef).
-                                    setRealm("/").
+                                    setRealm(SyncopeConstants.ROOT_REALM).
                                     setFiltered(true).
                                     setFiql(query).
                                     disableCheckBoxes().
@@ -136,7 +136,7 @@ public class GroupDirectoryPanel extends 
AnyDirectoryPanel<GroupTO, GroupRestCli
 
                             panel = new AnyObjectDirectoryPanel.Builder(
                                     
classRestClient.list(anyTypeTO.getClasses()), anyTypeTO.getKey(), pageRef).
-                                    setRealm("/").
+                                    setRealm(SyncopeConstants.ROOT_REALM).
                                     setFiltered(true).
                                     setFiql(query).
                                     disableCheckBoxes().

http://git-wip-us.apache.org/repos/asf/syncope/blob/d420c398/client/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java
index d382c7b..579ab16 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java
@@ -47,6 +47,7 @@ import 
org.apache.syncope.client.console.wizards.WizardMgtPanel;
 import org.apache.syncope.client.console.wizards.role.RoleWrapper;
 import org.apache.syncope.client.lib.SyncopeClient;
 import org.apache.syncope.common.lib.SyncopeClientException;
+import org.apache.syncope.common.lib.SyncopeConstants;
 import org.apache.syncope.common.lib.to.AnyTypeTO;
 import org.apache.syncope.common.lib.to.RoleTO;
 import org.apache.syncope.common.lib.to.UserTO;
@@ -144,7 +145,7 @@ public class RoleDirectoryPanel extends 
DirectoryPanel<RoleTO, RoleWrapper, Role
 
             @Override
             public void onClick(final AjaxRequestTarget target, final RoleTO 
ignore) {
-                final RoleTO clone = 
SerializationUtils.clone(model.getObject());
+                RoleTO clone = SerializationUtils.clone(model.getObject());
                 clone.setKey(null);
                 send(RoleDirectoryPanel.this, Broadcast.EXACT,
                         new AjaxWizard.NewItemActionEvent<>(new 
RoleWrapper(clone), target));
@@ -172,9 +173,9 @@ public class RoleDirectoryPanel extends 
DirectoryPanel<RoleTO, RoleWrapper, Role
 
                     @Override
                     protected Panel getDirectoryPanel(final String id) {
-                        final Panel panel = new UserDirectoryPanel.Builder(
+                        Panel panel = new UserDirectoryPanel.Builder(
                                 classRestClient.list(anyTypeTO.getClasses()), 
anyTypeTO.getKey(), pageRef).
-                                setRealm("/").
+                                setRealm(SyncopeConstants.ROOT_REALM).
                                 setFiltered(true).
                                 setFiql(query).
                                 disableCheckBoxes().

http://git-wip-us.apache.org/repos/asf/syncope/blob/d420c398/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java
index be1d2b1..0f93fea 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java
@@ -25,19 +25,21 @@ import java.util.List;
 import java.util.Map;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.tuple.Pair;
+import org.apache.syncope.client.console.SyncopeConsoleSession;
 import org.apache.syncope.client.console.rest.AnyTypeRestClient;
 import org.apache.syncope.client.console.rest.GroupRestClient;
 import org.apache.syncope.client.console.rest.ResourceRestClient;
 import org.apache.syncope.client.console.rest.SchemaRestClient;
 import 
org.apache.syncope.client.console.wicket.markup.html.form.MultiFieldPanel;
 import org.apache.syncope.common.lib.EntityTOUtils;
+import org.apache.syncope.common.lib.SyncopeConstants;
 import org.apache.syncope.common.lib.search.SearchableFields;
 import org.apache.syncope.common.lib.to.PlainSchemaTO;
 import org.apache.syncope.common.lib.to.ResourceTO;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.syncope.common.lib.types.SchemaType;
+import org.apache.syncope.common.lib.types.StandardEntitlement;
 import org.apache.wicket.event.IEventSink;
-import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.IModel;
@@ -128,11 +130,9 @@ public abstract class AbstractSearchPanel extends Panel {
         super(id);
         populate();
         Pair<IModel<Map<String, String>>, Integer> groupInfo =
-                Pair.of(groupNames, groupRestClient.search("/",
-                        null,
-                        1,
-                        1,
-                        new SortParam<>("name", true)).getTotalCount());
+                
SyncopeConsoleSession.get().owns(StandardEntitlement.GROUP_SEARCH)
+                ? Pair.of(groupNames, 
groupRestClient.count(SyncopeConstants.ROOT_REALM, null, null))
+                : Pair.of(groupNames, 0);
 
         this.model = builder.model;
         this.typeKind = kind;

http://git-wip-us.apache.org/repos/asf/syncope/blob/d420c398/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnyObjectSearchPanel.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnyObjectSearchPanel.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnyObjectSearchPanel.java
index 0a94110..8197d15 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnyObjectSearchPanel.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnyObjectSearchPanel.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import org.apache.syncope.common.lib.SyncopeConstants;
 import org.apache.syncope.common.lib.to.GroupTO;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
@@ -79,7 +80,8 @@ public class AnyObjectSearchPanel extends AbstractSearchPanel 
{
 
             @Override
             protected Map<String, String> load() {
-                List<GroupTO> res = groupRestClient.search("/",
+                List<GroupTO> res = groupRestClient.search(
+                        SyncopeConstants.ROOT_REALM,
                         null,
                         1,
                         MAX_GROUP_LIST_CARDINALITY,

http://git-wip-us.apache.org/repos/asf/syncope/blob/d420c398/client/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java
index 80c0452..aca3887 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java
@@ -45,6 +45,7 @@ import 
org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPa
 import org.apache.syncope.client.console.wicket.markup.html.form.FieldPanel;
 import org.apache.syncope.client.lib.SyncopeClient;
 import org.apache.syncope.common.lib.EntityTOUtils;
+import org.apache.syncope.common.lib.SyncopeConstants;
 import org.apache.syncope.common.lib.to.GroupTO;
 import org.apache.syncope.common.lib.to.PlainSchemaTO;
 import org.apache.wicket.AttributeModifier;
@@ -393,8 +394,7 @@ public class SearchClausePanel extends 
FieldPanel<SearchClause> {
                 if (field.getModel().getObject().getType() == 
Type.GROUP_MEMBERSHIP) {
                     String[] inputAsArray = 
property.getField().getInputAsArray();
 
-                    if (StringUtils.isBlank(property.getField().getInput())
-                            || inputAsArray.length == 0) {
+                    if (StringUtils.isBlank(property.getField().getInput()) || 
inputAsArray.length == 0) {
                         property.setChoices(properties.getObject());
                     } else {
                         String inputValue = (inputAsArray.length > 1 && 
inputAsArray[1] != null)
@@ -408,7 +408,8 @@ public class SearchClausePanel extends 
FieldPanel<SearchClause> {
                                 ? inputValue : "*" + inputValue + "*");
 
                         if (groupInfo.getRight() > 
AnyObjectSearchPanel.MAX_GROUP_LIST_CARDINALITY) {
-                            List<GroupTO> filteredGroups = 
groupRestClient.search("/",
+                            List<GroupTO> filteredGroups = 
groupRestClient.search(
+                                    SyncopeConstants.ROOT_REALM,
                                     
SyncopeClient.getGroupSearchConditionBuilder().
                                             
is("name").equalToIgnoreCase(inputValue).
                                             query(),

http://git-wip-us.apache.org/repos/asf/syncope/blob/d420c398/client/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSearchPanel.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSearchPanel.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSearchPanel.java
index faaecb8..049ea25 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSearchPanel.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSearchPanel.java
@@ -83,5 +83,4 @@ public final class UserSearchPanel extends 
AnyObjectSearchPanel {
         result.add(SearchClause.Type.RELATIONSHIP);
         return result;
     }
-
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/d420c398/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java
index 9ecd9ca..e5d642b 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java
@@ -18,13 +18,11 @@
  */
 package org.apache.syncope.client.console.rest;
 
-import java.util.ArrayList;
 import java.util.List;
 import javax.ws.rs.core.GenericType;
 import javax.ws.rs.core.Response;
 import org.apache.syncope.common.lib.patch.GroupPatch;
 import org.apache.syncope.common.lib.to.GroupTO;
-import org.apache.syncope.common.lib.to.PagedResult;
 import org.apache.syncope.common.lib.to.ProvisioningResult;
 import org.apache.syncope.common.lib.types.BulkMembersActionType;
 import org.apache.syncope.common.rest.api.beans.AnyQuery;
@@ -77,33 +75,9 @@ public class GroupRestClient extends 
AbstractAnyRestClient<GroupTO> {
             final SortParam<String> sort,
             final String type) {
 
-        List<GroupTO> result = new ArrayList<>();
-        PagedResult<GroupTO> res;
-        do {
-            res = getService(GroupService.class).
-                    search(new 
AnyQuery.Builder().realm(realm).fiql(fiql).page(page).size(size).
-                            orderBy(toOrderBy(sort)).details(false).build());
-            result.addAll(res.getResult());
-        } while (page == -1 && size == -1 && res.getNext() != null);
-
-        return result;
-    }
-
-    public PagedResult<GroupTO> search(
-            final String realm,
-            final String fiql,
-            final int page,
-            final int size,
-            final SortParam<String> sort) {
-
-        PagedResult<GroupTO> res;
-        do {
-            res = getService(GroupService.class).
-                    search(new 
AnyQuery.Builder().realm(realm).fiql(fiql).page(page).size(size).
-                            orderBy(toOrderBy(sort)).details(false).build());
-        } while (page == -1 && size == -1 && res.getNext() != null);
-
-        return res;
+        return getService(GroupService.class).
+                search(new 
AnyQuery.Builder().realm(realm).fiql(fiql).page(page).size(size).
+                        
orderBy(toOrderBy(sort)).details(false).build()).getResult();
     }
 
     public void bulkMembersAction(final String key, final 
BulkMembersActionType actionType) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/d420c398/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
index 2c28a23..d22a270 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
@@ -36,6 +36,7 @@ import 
org.apache.syncope.client.console.wicket.ajax.markup.html.LabelInfo;
 import 
org.apache.syncope.client.console.wicket.markup.html.form.AjaxPalettePanel;
 import org.apache.syncope.client.lib.SyncopeClient;
 import org.apache.syncope.common.lib.EntityTOUtils;
+import org.apache.syncope.common.lib.SyncopeConstants;
 import org.apache.syncope.common.lib.search.GroupFiqlSearchConditionBuilder;
 import org.apache.syncope.common.lib.to.AnyTO;
 import org.apache.syncope.common.lib.to.DynRealmTO;
@@ -312,7 +313,7 @@ public class Groups extends WizardStep implements 
ICondition {
         private void reloadDynMemberships() {
             GroupFiqlSearchConditionBuilder searchConditionBuilder = 
SyncopeClient.getGroupSearchConditionBuilder();
 
-            ArrayList<CompleteCondition> conditions = new ArrayList<>();
+            List<CompleteCondition> conditions = new ArrayList<>();
             for (MembershipTO membership : 
GroupableRelatableTO.class.cast(anyTO).getDynMemberships()) {
                 
conditions.add(searchConditionBuilder.is("key").equalTo(membership.getGroupKey()).wrap());
             }
@@ -320,7 +321,7 @@ public class Groups extends WizardStep implements 
ICondition {
             Map<String, GroupTO> assignedGroups = new HashMap<>();
             if (!conditions.isEmpty()) {
                 for (GroupTO group : groupRestClient.search(
-                        "/",
+                        SyncopeConstants.ROOT_REALM,
                         searchConditionBuilder.or(conditions).query(),
                         -1,
                         -1,
@@ -347,7 +348,7 @@ public class Groups extends WizardStep implements 
ICondition {
 
             if (Groups.this.templateMode) {
                 reload = realm == null;
-                realm = "/";
+                realm = SyncopeConstants.ROOT_REALM;
             } else {
                 reload = !Groups.this.anyTO.getRealm().equalsIgnoreCase(realm);
                 realm = Groups.this.anyTO.getRealm();

Reply via email to