You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2019/12/20 13:58:33 UTC

[syncope] branch 2_1_X updated: [SYNCOPE-1517] Initial changes (part two)

This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a commit to branch 2_1_X
in repository https://gitbox.apache.org/repos/asf/syncope.git


The following commit(s) were added to refs/heads/2_1_X by this push:
     new 0798b75  [SYNCOPE-1517] Initial changes (part two)
0798b75 is described below

commit 0798b75c2995b17770bf73abd6a0e74d0dc64ca1
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Fri Dec 20 14:58:17 2019 +0100

    [SYNCOPE-1517] Initial changes (part two)
---
 .../syncope/client/console/panels/AnyPanel.java    | 189 +++++++++++----------
 .../wicket/markup/html/form/ActionsPanel.java      |   4 +
 2 files changed, 104 insertions(+), 89 deletions(-)

diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyPanel.java
index 14940c7..86c4708 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyPanel.java
@@ -67,6 +67,8 @@ public class AnyPanel extends Panel implements ModalPanel {
 
     protected static final Logger LOG = LoggerFactory.getLogger(AnyPanel.class);
 
+    protected static final String DIRECTORY_PANEL_ID = "searchResult";
+
     @FunctionalInterface
     public interface DirectoryPanelSupplier {
 
@@ -78,6 +80,93 @@ public class AnyPanel extends Panel implements ModalPanel {
                 PageReference pageRef);
     }
 
+    protected static DirectoryPanelSupplier DEFAULT_DIRECTORYPANEL_SUPPLIER =
+            (id, anyTypeTO, realmTO, anyLayout, pageRef) -> {
+
+                AnyTypeClassRestClient anyTypeClassRestClient = new AnyTypeClassRestClient();
+
+                final Panel panel;
+                String fiql;
+
+                final String realm;
+                final String dynRealm;
+                if (realmTO.getFullPath().startsWith(SyncopeConstants.ROOT_REALM)) {
+                    realm = realmTO.getFullPath();
+                    dynRealm = null;
+                } else {
+                    realm = SyncopeConstants.ROOT_REALM;
+                    dynRealm = realmTO.getKey();
+                }
+
+                switch (anyTypeTO.getKind()) {
+                    case USER:
+                        fiql = dynRealm == null
+                                ? SyncopeClient.getUserSearchConditionBuilder().
+                                        is(Constants.KEY_FIELD_NAME).notNullValue().query()
+                                : SyncopeClient.getUserSearchConditionBuilder().
+                                        inDynRealms(dynRealm).query();
+
+                        UserTO userTO = new UserTO();
+                        userTO.setRealm(realmTO.getFullPath());
+                        panel = new UserDirectoryPanel.Builder(
+                                anyTypeClassRestClient.list(anyTypeTO.getClasses()),
+                                anyTypeTO.getKey(),
+                                pageRef).setRealm(realm).setDynRealm(dynRealm).setFiltered(true).
+                                setFiql(fiql).setWizardInModal(true).addNewItemPanelBuilder(
+                                AnyLayoutUtils.newLayoutInfo(
+                                        userTO, anyTypeTO.getClasses(), anyLayout.getUser(), pageRef)).
+                                build(id);
+                        MetaDataRoleAuthorizationStrategy.authorize(panel, WebPage.RENDER,
+                                StandardEntitlement.USER_SEARCH);
+                        break;
+
+                    case GROUP:
+                        fiql = dynRealm == null
+                                ? SyncopeClient.getGroupSearchConditionBuilder().
+                                        is(Constants.KEY_FIELD_NAME).notNullValue().query()
+                                : SyncopeClient.getGroupSearchConditionBuilder().inDynRealms(dynRealm).query();
+
+                        GroupTO groupTO = new GroupTO();
+                        groupTO.setRealm(realmTO.getFullPath());
+                        panel = new GroupDirectoryPanel.Builder(
+                                anyTypeClassRestClient.list(anyTypeTO.getClasses()),
+                                anyTypeTO.getKey(),
+                                pageRef).setRealm(realm).setDynRealm(dynRealm).setFiltered(true).
+                                setFiql(fiql).setWizardInModal(true).addNewItemPanelBuilder(
+                                AnyLayoutUtils.newLayoutInfo(
+                                        groupTO, anyTypeTO.getClasses(), anyLayout.getGroup(), pageRef)).
+                                build(id);
+                        // list of group is available to all authenticated users
+                        break;
+
+                    case ANY_OBJECT:
+                        fiql = dynRealm == null
+                                ? SyncopeClient.getAnyObjectSearchConditionBuilder(anyTypeTO.getKey()).
+                                        is(Constants.KEY_FIELD_NAME).notNullValue().query()
+                                : SyncopeClient.getAnyObjectSearchConditionBuilder(anyTypeTO.getKey()).
+                                        inDynRealms(dynRealm).query();
+
+                        AnyObjectTO anyObjectTO = new AnyObjectTO();
+                        anyObjectTO.setRealm(realmTO.getFullPath());
+                        anyObjectTO.setType(anyTypeTO.getKey());
+                        panel = new AnyObjectDirectoryPanel.Builder(
+                                anyTypeClassRestClient.list(anyTypeTO.getClasses()),
+                                anyTypeTO.getKey(),
+                                pageRef).setRealm(realm).setDynRealm(dynRealm).setFiltered(true).
+                                setFiql(fiql).setWizardInModal(true).addNewItemPanelBuilder(
+                                AnyLayoutUtils.newLayoutInfo(anyObjectTO, anyTypeTO.getClasses(),
+                                        anyLayout.getAnyObjects().get(anyTypeTO.getKey()), pageRef)).
+                                build(id);
+                        MetaDataRoleAuthorizationStrategy.authorize(
+                                panel, WebPage.RENDER, AnyEntitlement.SEARCH.getFor(anyTypeTO.getKey()));
+                        break;
+
+                    default:
+                        panel = new LabelPanel(id, null);
+                }
+                return panel;
+            };
+
     protected final AnyTypeTO anyTypeTO;
 
     protected final RealmTO realmTO;
@@ -157,11 +246,21 @@ public class AnyPanel extends Panel implements ModalPanel {
         accordion.setOutputMarkupId(true);
         add(accordion.setEnabled(enableSearch).setVisible(enableSearch));
 
-        directoryPanel = directoryPanelSupplier.supply("searchResult", anyTypeTO, realmTO, anyLayout, pageRef);
+        directoryPanel = createDirectoryPanel(anyTypeTO, realmTO, anyLayout, enableSearch, directoryPanelSupplier);
         add(directoryPanel);
         // ------------------------
     }
 
+    protected Panel createDirectoryPanel(
+            final AnyTypeTO anyTypeTO,
+            final RealmTO realmTO,
+            final AnyLayout anyLayout,
+            final boolean enableSearch,
+            final DirectoryPanelSupplier directoryPanelSupplier) {
+
+        return directoryPanelSupplier.supply(DIRECTORY_PANEL_ID, anyTypeTO, realmTO, anyLayout, pageRef);
+    }
+
     @Override
     public void onEvent(final IEvent<?> event) {
         if (event.getPayload() instanceof SearchClausePanel.SearchEvent) {
@@ -249,92 +348,4 @@ public class AnyPanel extends Panel implements ModalPanel {
 
         return panel;
     }
-
-    protected static DirectoryPanelSupplier DEFAULT_DIRECTORYPANEL_SUPPLIER =
-            (id, anyType, realmTO, anyLayout, pageRef) -> {
-
-                AnyTypeClassRestClient anyTypeClassRestClient = new AnyTypeClassRestClient();
-
-                final Panel panel;
-                String fiql;
-
-                final String realm;
-                final String dynRealm;
-                if (realmTO.getFullPath().startsWith(SyncopeConstants.ROOT_REALM)) {
-                    realm = realmTO.getFullPath();
-                    dynRealm = null;
-                } else {
-                    realm = SyncopeConstants.ROOT_REALM;
-                    dynRealm = realmTO.getKey();
-                }
-
-                switch (anyType.getKind()) {
-                    case USER:
-                        fiql = dynRealm == null
-                                ? SyncopeClient.getUserSearchConditionBuilder().
-                                        is(Constants.KEY_FIELD_NAME).notNullValue().query()
-                                : SyncopeClient.getUserSearchConditionBuilder().
-                                        inDynRealms(dynRealm).query();
-
-                        UserTO userTO = new UserTO();
-                        userTO.setRealm(realmTO.getFullPath());
-                        panel = new UserDirectoryPanel.Builder(
-                                anyTypeClassRestClient.list(anyType.getClasses()),
-                                anyType.getKey(),
-                                pageRef).setRealm(realm).setDynRealm(dynRealm).setFiltered(true).
-                                setFiql(fiql).setWizardInModal(true).addNewItemPanelBuilder(
-                                AnyLayoutUtils.newLayoutInfo(
-                                        userTO, anyType.getClasses(), anyLayout.getUser(), pageRef)).
-                                build(id);
-                        MetaDataRoleAuthorizationStrategy.authorize(panel, WebPage.RENDER,
-                                StandardEntitlement.USER_SEARCH);
-                        break;
-
-                    case GROUP:
-                        fiql = dynRealm == null
-                                ? SyncopeClient.getGroupSearchConditionBuilder().
-                                        is(Constants.KEY_FIELD_NAME).notNullValue().query()
-                                : SyncopeClient.getGroupSearchConditionBuilder().inDynRealms(dynRealm).query();
-
-                        GroupTO groupTO = new GroupTO();
-                        groupTO.setRealm(realmTO.getFullPath());
-                        panel = new GroupDirectoryPanel.Builder(
-                                anyTypeClassRestClient.list(anyType.getClasses()),
-                                anyType.getKey(),
-                                pageRef).setRealm(realm).setDynRealm(dynRealm).setFiltered(true).
-                                setFiql(fiql).setWizardInModal(true).addNewItemPanelBuilder(
-                                AnyLayoutUtils.newLayoutInfo(
-                                        groupTO, anyType.getClasses(), anyLayout.getGroup(), pageRef)).
-                                build(id);
-                        // list of group is available to all authenticated users
-                        break;
-
-                    case ANY_OBJECT:
-                        fiql = dynRealm == null
-                                ? SyncopeClient.getAnyObjectSearchConditionBuilder(anyType.getKey()).
-                                        is(Constants.KEY_FIELD_NAME).notNullValue().query()
-                                : SyncopeClient.getAnyObjectSearchConditionBuilder(anyType.getKey()).
-                                        inDynRealms(dynRealm).query();
-
-                        AnyObjectTO anyObjectTO = new AnyObjectTO();
-                        anyObjectTO.setRealm(realmTO.getFullPath());
-                        anyObjectTO.setType(anyType.getKey());
-                        panel = new AnyObjectDirectoryPanel.Builder(
-                                anyTypeClassRestClient.list(anyType.getClasses()),
-                                anyType.getKey(),
-                                pageRef).setRealm(realm).setDynRealm(dynRealm).setFiltered(true).
-                                setFiql(fiql).setWizardInModal(true).addNewItemPanelBuilder(
-                                AnyLayoutUtils.newLayoutInfo(anyObjectTO, anyType.getClasses(),
-                                        anyLayout.getAnyObjects().get(anyType.getKey()), pageRef)).
-                                build(id);
-                        MetaDataRoleAuthorizationStrategy.authorize(
-                                panel, WebPage.RENDER, AnyEntitlement.SEARCH.getFor(anyType.getKey()));
-                        break;
-
-                    default:
-                        panel = new LabelPanel(id, null);
-                }
-                return panel;
-            };
-
 }
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel.java
index d269c0a..9b11efa 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel.java
@@ -77,6 +77,10 @@ public final class ActionsPanel<T extends Serializable> extends Panel {
         return action;
     }
 
+    public List<Action<T>> getActions() {
+        return actions;
+    }
+
     public ActionsPanel<T> clone(final String componentId, final IModel<T> model) {
         ActionsPanel<T> panel = new ActionsPanel<>(componentId, model);
         panel.actions.addAll(actions);