This is an automated email from the ASF dual-hosted git repository. ilgrosso pushed a commit to branch 3_0_X in repository https://gitbox.apache.org/repos/asf/syncope.git
commit 8fef9b7c2ffcc916a83a90f933bc249d5e71c109 Author: Francesco Chicchiriccò <ilgro...@apache.org> AuthorDate: Mon Jun 26 17:12:34 2023 +0200 Fixing a few Console glitches --- ...irectoryPanelAdditionalActionLinksProvider.java | 13 +++++--- .../status/ResourceStatusDirectoryPanel.java | 4 +++ .../ui/commons/status/ConnObjectWrapper.java | 1 - .../client/ui/commons/wizards/any/AnyWrapper.java | 2 +- .../ui/commons/wizards/any/EntityWrapper.java | 6 ++-- .../notifications/NotificationDirectoryPanel.java | 28 +++++++---------- .../console/notifications/NotificationWrapper.java | 30 ++++++++---------- .../syncope/client/console/pages/Engagements.java | 2 +- .../client/console/pages/Notifications.java | 5 +-- .../console/panels/AnyObjectDirectoryPanel.java | 7 +++-- .../client/console/panels/DirectoryPanel.java | 6 +++- .../client/console/panels/GroupDirectoryPanel.java | 32 ++++++++++--------- .../client/console/panels/RoleDirectoryPanel.java | 7 ++--- .../client/console/panels/UserDirectoryPanel.java | 8 ++--- .../client/console/tasks/PushTaskWrapper.java | 16 +++++----- .../console/tasks/SchedTaskDirectoryPanel.java | 1 - .../markup/html/form/ActionLinksTogglePanel.java | 15 ++++----- .../wicket/markup/html/form/ActionPanel.java | 36 ++++++++-------------- .../client/console/wizards/DynRealmWrapper.java | 20 +++++------- .../any/AnyObjectTemplateWizardBuilder.java | 4 +-- .../console/wizards/any/AnyWizardBuilder.java | 13 +++++++- .../client/console/wizards/role/RoleWrapper.java | 22 +++++-------- .../panels/AccessTokenDirectoryPanel_it.properties | 2 +- .../AccessTokenDirectoryPanel_pt_BR.properties | 2 +- .../panels/AccessTokenDirectoryPanel_ru.properties | 2 +- .../console/panels/RoleDirectoryPanel.properties | 2 +- .../panels/RoleDirectoryPanel_fr_CA.properties | 6 ++-- .../panels/RoleDirectoryPanel_it.properties | 2 +- .../panels/RoleDirectoryPanel_ja.properties | 2 +- .../panels/RoleDirectoryPanel_pt_BR.properties | 2 +- .../panels/RoleDirectoryPanel_ru.properties | 2 +- 31 files changed, 143 insertions(+), 157 deletions(-) diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMAnyDirectoryPanelAdditionalActionLinksProvider.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMAnyDirectoryPanelAdditionalActionLinksProvider.java index b3ce8a9d3c..8de1443759 100644 --- a/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMAnyDirectoryPanelAdditionalActionLinksProvider.java +++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMAnyDirectoryPanelAdditionalActionLinksProvider.java @@ -30,9 +30,12 @@ import org.apache.syncope.client.console.status.AnyStatusModal; import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal; import org.apache.syncope.client.console.wicket.markup.html.form.Action; import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink; +import org.apache.syncope.client.console.wizards.any.AnyObjectWrapper; +import org.apache.syncope.client.console.wizards.any.GroupWrapper; import org.apache.syncope.client.console.wizards.any.MergeLinkedAccountsWizardBuilder; import org.apache.syncope.client.ui.commons.wizards.AjaxWizard; import org.apache.syncope.client.ui.commons.wizards.any.AnyWrapper; +import org.apache.syncope.client.ui.commons.wizards.any.UserWrapper; import org.apache.syncope.common.lib.to.AnyObjectTO; import org.apache.syncope.common.lib.to.GroupTO; import org.apache.syncope.common.lib.to.UserTO; @@ -81,7 +84,7 @@ public class IdMAnyDirectoryPanelAdditionalActionLinksProvider @Override public void onClick(final AjaxRequestTarget target, final UserTO ignore) { IModel<AnyWrapper<UserTO>> formModel = new CompoundPropertyModel<>( - new AnyWrapper<>(model.getObject())); + new UserWrapper(model.getObject())); modal.setFormModel(formModel); target.add(modal.setContent(new AnyStatusModal<>( @@ -108,7 +111,7 @@ public class IdMAnyDirectoryPanelAdditionalActionLinksProvider public void onClick(final AjaxRequestTarget target, final UserTO ignore) { model.setObject(userRestClient.read(model.getObject().getKey())); IModel<AnyWrapper<UserTO>> formModel = new CompoundPropertyModel<>( - new AnyWrapper<>(model.getObject())); + new UserWrapper(model.getObject())); modal.setFormModel(formModel); target.add(modal.setContent(new AnyStatusModal<>( @@ -190,7 +193,7 @@ public class IdMAnyDirectoryPanelAdditionalActionLinksProvider @Override public void onClick(final AjaxRequestTarget target, final GroupTO ignore) { IModel<AnyWrapper<GroupTO>> formModel = new CompoundPropertyModel<>( - new AnyWrapper<>(modelObject)); + new GroupWrapper(modelObject)); modal.setFormModel(formModel); target.add(modal.setContent(new AnyStatusModal<>( @@ -231,8 +234,8 @@ public class IdMAnyDirectoryPanelAdditionalActionLinksProvider @Override public void onClick(final AjaxRequestTarget target, final AnyObjectTO ignore) { - final IModel<AnyWrapper<AnyObjectTO>> formModel = new CompoundPropertyModel<>( - new AnyWrapper<>(modelObject)); + IModel<AnyWrapper<AnyObjectTO>> formModel = new CompoundPropertyModel<>( + new AnyObjectWrapper(modelObject)); modal.setFormModel(formModel); target.add(modal.setContent(new AnyStatusModal<>( diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusDirectoryPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusDirectoryPanel.java index 21854ead05..70da0537fe 100644 --- a/client/idm/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusDirectoryPanel.java +++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusDirectoryPanel.java @@ -206,6 +206,10 @@ public class ResourceStatusDirectoryPanel } } + synchronized (this) { + dataProvider = dataProvider(); + } + super.updateResultTable(target); } diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/status/ConnObjectWrapper.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/status/ConnObjectWrapper.java index c5b8be70b3..3098b0fc27 100644 --- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/status/ConnObjectWrapper.java +++ b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/status/ConnObjectWrapper.java @@ -49,5 +49,4 @@ public class ConnObjectWrapper implements Serializable { public ConnObject getConnObjectTO() { return connObjectTO; } - } diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/any/AnyWrapper.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/any/AnyWrapper.java index 482b4975e1..6fec895f0a 100644 --- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/any/AnyWrapper.java +++ b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/any/AnyWrapper.java @@ -21,7 +21,7 @@ package org.apache.syncope.client.ui.commons.wizards.any; import java.io.Serializable; import org.apache.syncope.common.lib.to.AnyTO; -public class AnyWrapper<T extends AnyTO> implements Serializable { +public abstract class AnyWrapper<T extends AnyTO> implements Serializable { private static final long serialVersionUID = 8058288034211558375L; diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/any/EntityWrapper.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/any/EntityWrapper.java index 6764049844..95bcd6523b 100644 --- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/any/EntityWrapper.java +++ b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/any/EntityWrapper.java @@ -18,9 +18,12 @@ */ package org.apache.syncope.client.ui.commons.wizards.any; +import java.io.Serializable; import org.apache.syncope.common.lib.to.EntityTO; -public class EntityWrapper<T extends EntityTO> { +public class EntityWrapper<T extends EntityTO> implements Serializable { + + private static final long serialVersionUID = 1L; protected final T entityTO; @@ -31,5 +34,4 @@ public class EntityWrapper<T extends EntityTO> { public T getInnerObject() { return entityTO; } - } diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel.java index 5333be5137..b8d4758e81 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel.java @@ -54,6 +54,7 @@ import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn; import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; import org.apache.wicket.model.StringResourceModel; import org.apache.wicket.spring.injection.annot.SpringBean; @@ -80,7 +81,9 @@ public class NotificationDirectoryPanel protected final BaseModal<String> utilityModal = new BaseModal<>(Constants.OUTER); public NotificationDirectoryPanel( - final String id, final NotificationRestClient restClient, final PageReference pageRef) { + final String id, + final NotificationRestClient restClient, + final PageReference pageRef) { super(id, restClient, pageRef, true); disableCheckBoxes(); @@ -126,9 +129,9 @@ public class NotificationDirectoryPanel @Override public ActionsPanel<NotificationTO> getActions(final IModel<NotificationTO> model) { - final ActionsPanel<NotificationTO> panel = super.getActions(model); + ActionsPanel<NotificationTO> actions = super.getActions(model); - panel.add(new ActionLink<>() { + actions.add(new ActionLink<>() { private static final long serialVersionUID = -7978723352517770645L; @@ -140,21 +143,20 @@ public class NotificationDirectoryPanel } }, ActionLink.ActionType.EDIT, IdRepoEntitlement.NOTIFICATION_UPDATE); - panel.add(new ActionLink<>() { + actions.add(new ActionLink<>() { private static final long serialVersionUID = -7978723352517770645L; @Override public void onClick(final AjaxRequestTarget target, final NotificationTO ignore) { - target.add(utilityModal.setContent( - new NotificationTasks(model.getObject().getKey(), pageRef))); + target.add(utilityModal.setContent(new NotificationTasks(model.getObject().getKey(), pageRef))); utilityModal.header(new StringResourceModel("notification.tasks", model)); utilityModal.show(true); target.add(utilityModal); } }, ActionLink.ActionType.NOTIFICATION_TASKS, IdRepoEntitlement.TASK_LIST); - panel.add(new ActionLink<>() { + actions.add(new ActionLink<>() { private static final long serialVersionUID = -3722207913631435501L; @@ -172,7 +174,7 @@ public class NotificationDirectoryPanel } }, ActionLink.ActionType.DELETE, IdRepoEntitlement.NOTIFICATION_DELETE, true); - return panel; + return actions; } @Override @@ -217,15 +219,7 @@ public class NotificationDirectoryPanel @Override public IModel<NotificationTO> model(final NotificationTO notification) { - return new IModel<>() { - - private static final long serialVersionUID = 774694801558497248L; - - @Override - public NotificationTO getObject() { - return notification; - } - }; + return Model.of(notification); } } } diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWrapper.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWrapper.java index 148c74b824..d2dcc47574 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWrapper.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWrapper.java @@ -18,7 +18,6 @@ */ package org.apache.syncope.client.console.notifications; -import java.io.Serializable; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -28,30 +27,29 @@ import org.apache.commons.lang3.tuple.Pair; import org.apache.syncope.client.console.panels.search.SearchClause; import org.apache.syncope.client.console.panels.search.SearchUtils; import org.apache.syncope.client.lib.SyncopeClient; +import org.apache.syncope.client.ui.commons.wizards.any.EntityWrapper; import org.apache.syncope.common.lib.search.AbstractFiqlSearchConditionBuilder; import org.apache.syncope.common.lib.to.NotificationTO; -public class NotificationWrapper implements Serializable { +public class NotificationWrapper extends EntityWrapper<NotificationTO> { private static final long serialVersionUID = 8058288034211558376L; - private final NotificationTO notificationTO; - private List<Pair<String, List<SearchClause>>> aboutClauses; private List<SearchClause> recipientClauses; public NotificationWrapper(final NotificationTO notificationTO) { - this.notificationTO = notificationTO; + super(notificationTO); } public final String getKey() { - return this.notificationTO.getKey(); + return getInnerObject().getKey(); } public List<Pair<String, List<SearchClause>>> getAboutClauses() { if (this.aboutClauses == null) { - this.aboutClauses = SearchUtils.getSearchClauses(this.notificationTO.getAbouts()).entrySet().stream(). + this.aboutClauses = SearchUtils.getSearchClauses(getInnerObject().getAbouts()).entrySet().stream(). map(entry -> Pair.of(entry.getKey(), entry.getValue())).collect(Collectors.toList()); } @@ -64,7 +62,7 @@ public class NotificationWrapper implements Serializable { public List<SearchClause> getRecipientClauses() { if (this.recipientClauses == null) { - this.recipientClauses = SearchUtils.getSearchClauses(this.notificationTO.getRecipientsFIQL()); + this.recipientClauses = SearchUtils.getSearchClauses(getInnerObject().getRecipientsFIQL()); } return this.recipientClauses; } @@ -75,7 +73,7 @@ public class NotificationWrapper implements Serializable { public Map<String, String> getAboutFIQLs() { if (CollectionUtils.isEmpty(this.aboutClauses) || this.aboutClauses.get(0).getValue().isEmpty()) { - return this.notificationTO.getAbouts(); + return getInnerObject().getAbouts(); } else { Map<String, String> res = new HashMap<>(); for (Pair<String, List<SearchClause>> pair : this.aboutClauses) { @@ -107,17 +105,13 @@ public class NotificationWrapper implements Serializable { } public NotificationTO fillAboutConditions() { - this.notificationTO.getAbouts().clear(); - this.notificationTO.getAbouts().putAll(this.getAboutFIQLs()); - return this.notificationTO; + getInnerObject().getAbouts().clear(); + getInnerObject().getAbouts().putAll(this.getAboutFIQLs()); + return getInnerObject(); } public NotificationTO fillRecipientConditions() { - this.notificationTO.setRecipientsFIQL(this.getRecipientsFIQL()); - return this.notificationTO; - } - - public NotificationTO getInnerObject() { - return this.notificationTO; + getInnerObject().setRecipientsFIQL(this.getRecipientsFIQL()); + return getInnerObject(); } } diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Engagements.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Engagements.java index 8be2495e98..5931f98915 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Engagements.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Engagements.java @@ -61,7 +61,7 @@ public class Engagements extends BasePage { body.add(content); } - private List<ITab> buildTabList() { + protected List<ITab> buildTabList() { List<ITab> tabs = new ArrayList<>(); tabs.add(new AbstractTab(new ResourceModel("schedTasks")) { diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Notifications.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Notifications.java index 0eed8de5b0..72fc7eaf3c 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Notifications.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Notifications.java @@ -52,8 +52,8 @@ public class Notifications extends BasePage { body.add(content); } - private List<ITab> buildTabList() { - final List<ITab> tabs = new ArrayList<>(); + protected List<ITab> buildTabList() { + List<ITab> tabs = new ArrayList<>(); tabs.add(new AbstractTab(new ResourceModel("notifications")) { @@ -74,6 +74,7 @@ public class Notifications extends BasePage { return new MailTemplateDirectoryPanel(panelId, notificationRestClient, getPageReference()); } }); + return tabs; } } diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AnyObjectDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AnyObjectDirectoryPanel.java index 91edad3a98..7586875332 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AnyObjectDirectoryPanel.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AnyObjectDirectoryPanel.java @@ -34,6 +34,7 @@ import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink; import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink.ActionType; import org.apache.syncope.client.console.wicket.markup.html.form.ActionsPanel; import org.apache.syncope.client.console.wizards.WizardMgtPanel; +import org.apache.syncope.client.console.wizards.any.AnyObjectWrapper; import org.apache.syncope.client.ui.commons.Constants; import org.apache.syncope.client.ui.commons.wizards.AjaxWizard; import org.apache.syncope.client.ui.commons.wizards.any.AnyWrapper; @@ -117,7 +118,7 @@ public class AnyObjectDirectoryPanel extends AnyDirectoryPanel<AnyObjectTO, AnyO public void onClick(final AjaxRequestTarget target, final AnyObjectTO ignore) { send(AnyObjectDirectoryPanel.this, Broadcast.EXACT, new AjaxWizard.EditItemActionEvent<>( - new AnyWrapper<>(restClient.read(model.getObject().getKey())), target)); + new AnyObjectWrapper(restClient.read(model.getObject().getKey())), target)); } }, ActionType.EDIT, String.format("%s,%s", AnyEntitlement.READ.getFor(type), AnyEntitlement.UPDATE.getFor(type))). @@ -129,7 +130,7 @@ public class AnyObjectDirectoryPanel extends AnyDirectoryPanel<AnyObjectTO, AnyO model.getObject(), realm, altDefaultModal, - getString("any.edit", new Model<>(new AnyWrapper<>(model.getObject()))), + getString("any.edit", new Model<>(new AnyObjectWrapper(model.getObject()))), this, pageRef).forEach(panel::add); @@ -214,7 +215,7 @@ public class AnyObjectDirectoryPanel extends AnyDirectoryPanel<AnyObjectTO, AnyO final AnyObjectTO clone = SerializationUtils.clone(model.getObject()); clone.setKey(null); send(AnyObjectDirectoryPanel.this, Broadcast.EXACT, - new AjaxWizard.NewItemActionEvent<>(new AnyWrapper<>(clone), target)); + new AjaxWizard.NewItemActionEvent<>(new AnyObjectWrapper(clone), target)); } @Override diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java index 5bf64e8397..252c2b398f 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java @@ -282,7 +282,11 @@ public abstract class DirectoryPanel< } protected void updateResultTable(final boolean create, final int rows) { - dataProvider = dataProvider(); + synchronized (this) { + if (dataProvider == null) { + dataProvider = dataProvider(); + } + } int currentPage = Optional.ofNullable(resultTable). map(table -> (create ? (int) table.getPageCount() - 1 : (int) table.getCurrentPage())).orElse(0); diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java index 0b1627b4e4..8f6ebaa3b8 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java @@ -18,6 +18,8 @@ */ package org.apache.syncope.client.console.panels; +import static de.agilecoders.wicket.extensions.markup.html.bootstrap.icon.FontAwesome5IconTypeBuilder.FontAwesome5Brand.java; + import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal; import java.io.Serializable; import java.util.List; @@ -237,9 +239,9 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO, GroupRestCli @Override public ActionsPanel<GroupTO> getActions(final IModel<GroupTO> model) { - final ActionsPanel<GroupTO> panel = super.getActions(model); + ActionsPanel<GroupTO> actions = super.getActions(model); - panel.add(new ActionLink<>() { + actions.add(new ActionLink<>() { private static final long serialVersionUID = -7978723352517770644L; @@ -253,7 +255,7 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO, GroupRestCli String.format("%s,%s", IdRepoEntitlement.GROUP_READ, IdRepoEntitlement.GROUP_UPDATE)). setRealms(realm, model.getObject().getDynRealms()); - panel.add(new ActionLink<>() { + actions.add(new ActionLink<>() { private static final long serialVersionUID = 6242834621660352855L; @@ -267,7 +269,7 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO, GroupRestCli }, ActionType.TYPE_EXTENSIONS, IdRepoEntitlement.GROUP_UPDATE). setRealms(realm, model.getObject().getDynRealms()); - panel.add(new ActionLink<>() { + actions.add(new ActionLink<>() { private static final long serialVersionUID = -7978723352517770645L; @@ -302,7 +304,7 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO, GroupRestCli ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target); } }.confirmMessage("confirmProvisionMembers"); - panel.add( + actions.add( provisionMembers, ActionType.PROVISION_MEMBERS, String.format("%s,%s", IdRepoEntitlement.TASK_CREATE, IdRepoEntitlement.TASK_EXECUTE), @@ -325,7 +327,7 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO, GroupRestCli ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target); } }.confirmMessage("confirmDeprovisionMembers"); - panel.add( + actions.add( deprovisionMembers, ActionType.DEPROVISION_MEMBERS, String.format("%s,%s", IdRepoEntitlement.TASK_CREATE, IdRepoEntitlement.TASK_EXECUTE), @@ -335,11 +337,11 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO, GroupRestCli model.getObject(), realm, altDefaultModal, - getString("any.edit", new Model<>(new AnyWrapper<>(model.getObject()))), + getString("any.edit", new Model<>(new GroupWrapper(model.getObject()))), this, - pageRef).forEach(panel::add); + pageRef).forEach(actions::add); - panel.add(new ActionLink<>() { + actions.add(new ActionLink<>() { private static final long serialVersionUID = -7978723352517770644L; @@ -352,7 +354,7 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO, GroupRestCli } }, ActionType.PROPAGATION_TASKS, IdRepoEntitlement.TASK_LIST); - panel.add(new ActionLink<>() { + actions.add(new ActionLink<>() { private static final long serialVersionUID = -7978723352517770644L; @@ -365,7 +367,7 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO, GroupRestCli } }, ActionType.NOTIFICATION_TASKS, IdRepoEntitlement.TASK_LIST); - panel.add(new ActionLink<>() { + actions.add(new ActionLink<>() { private static final long serialVersionUID = -2878723352517770644L; @@ -402,7 +404,7 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO, GroupRestCli })); altDefaultModal.header(new Model<>( - getString("auditHistory.title", new Model<>(new AnyWrapper<>(model.getObject()))))); + getString("auditHistory.title", new Model<>(new GroupWrapper(model.getObject()))))); altDefaultModal.show(true); } @@ -410,7 +412,7 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO, GroupRestCli String.format("%s,%s", IdRepoEntitlement.GROUP_READ, IdRepoEntitlement.AUDIT_LIST)). setRealms(realm, model.getObject().getDynRealms()); - panel.add(new ActionLink<>() { + actions.add(new ActionLink<>() { private static final long serialVersionUID = 6242834621660352855L; @@ -428,7 +430,7 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO, GroupRestCli } }, ActionType.CLONE, IdRepoEntitlement.GROUP_CREATE).setRealm(realm); - panel.add(new ActionLink<>() { + actions.add(new ActionLink<>() { private static final long serialVersionUID = -7978723352517770644L; @@ -451,7 +453,7 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO, GroupRestCli } }, ActionType.DELETE, IdRepoEntitlement.GROUP_DELETE, true).setRealm(realm); - return panel; + return actions; } public static class Builder extends AnyDirectoryPanel.Builder<GroupTO, GroupRestClient> { diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java index 9214e2931f..c2eb5aefb2 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java @@ -178,11 +178,8 @@ public class RoleDirectoryPanel extends DirectoryPanel<RoleTO, RoleWrapper, Role layout.getAnyPanelClass(), BaseModal.CONTENT_ID, userType, null, layout, false, pageRef). build((id, anyTypeTO, realmTO, anyLayout, pageRef) -> { - String query = SyncopeClient.getUserSearchConditionBuilder().and( - SyncopeClient.getUserSearchConditionBuilder().inRoles(model.getObject().getKey()), - SyncopeClient.getUserSearchConditionBuilder(). - is(Constants.KEY_FIELD_NAME).notNullValue()). - query(); + String query = SyncopeClient.getUserSearchConditionBuilder(). + inRoles(model.getObject().getKey()).query(); Panel panel = new UserDirectoryPanel.Builder( anyTypeClassRestClient.list(anyTypeTO.getClasses()), diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/UserDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/UserDirectoryPanel.java index 8d3988d388..25fdfc1303 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/UserDirectoryPanel.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/UserDirectoryPanel.java @@ -180,7 +180,7 @@ public class UserDirectoryPanel extends AnyDirectoryPanel<UserTO, UserRestClient public void onClick(final AjaxRequestTarget target, final UserTO ignore) { model.setObject(restClient.read(model.getObject().getKey())); IModel<AnyWrapper<UserTO>> formModel = new CompoundPropertyModel<>( - new AnyWrapper<>(model.getObject())); + new UserWrapper(model.getObject())); displayAttributeModal.setFormModel(formModel); target.add(displayAttributeModal.setContent(new ChangePasswordModal( @@ -189,7 +189,7 @@ public class UserDirectoryPanel extends AnyDirectoryPanel<UserTO, UserRestClient pageRef))); displayAttributeModal.header(new Model<>( - getString("any.edit", new Model<>(new AnyWrapper<>(model.getObject()))))); + getString("any.edit", new Model<>(new UserWrapper(model.getObject()))))); displayAttributeModal.size(Modal.Size.Large); displayAttributeModal.show(true); @@ -225,7 +225,7 @@ public class UserDirectoryPanel extends AnyDirectoryPanel<UserTO, UserRestClient model, realm, altDefaultModal, - getString("any.edit", new Model<>(new AnyWrapper<>(model.getObject()))), + getString("any.edit", new Model<>(new UserWrapper(model.getObject()))), this, pageRef).forEach(panel::add); @@ -306,7 +306,7 @@ public class UserDirectoryPanel extends AnyDirectoryPanel<UserTO, UserRestClient })); altDefaultModal.header(new Model<>( - getString("auditHistory.title", new Model<>(new AnyWrapper<>(model.getObject()))))); + getString("auditHistory.title", new Model<>(new UserWrapper(model.getObject()))))); altDefaultModal.show(true); } diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PushTaskWrapper.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PushTaskWrapper.java index 69e3e170fa..f4bc94a670 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PushTaskWrapper.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PushTaskWrapper.java @@ -18,32 +18,30 @@ */ package org.apache.syncope.client.console.tasks; -import java.io.Serializable; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.syncope.client.console.panels.search.SearchClause; import org.apache.syncope.client.console.panels.search.SearchUtils; import org.apache.syncope.client.lib.SyncopeClient; +import org.apache.syncope.client.ui.commons.wizards.any.EntityWrapper; import org.apache.syncope.common.lib.search.AbstractFiqlSearchConditionBuilder; import org.apache.syncope.common.lib.to.PushTaskTO; -public class PushTaskWrapper implements Serializable { +public class PushTaskWrapper extends EntityWrapper<PushTaskTO> { private static final long serialVersionUID = 8058288034211558377L; - private final PushTaskTO pushTaskTO; - private Map<String, List<SearchClause>> filterClauses; public PushTaskWrapper(final PushTaskTO pushTaskTO) { - this.pushTaskTO = pushTaskTO; + super(pushTaskTO); getFilterClauses(); } public final Map<String, List<SearchClause>> getFilterClauses() { if (this.filterClauses == null) { - this.filterClauses = SearchUtils.getSearchClauses(this.pushTaskTO.getFilters()); + this.filterClauses = SearchUtils.getSearchClauses(getInnerObject().getFilters()); } return this.filterClauses; } @@ -79,8 +77,8 @@ public class PushTaskWrapper implements Serializable { } public PushTaskTO fillFilterConditions() { - this.pushTaskTO.getFilters().clear(); - this.pushTaskTO.getFilters().putAll(this.getFilters()); - return this.pushTaskTO; + getInnerObject().getFilters().clear(); + getInnerObject().getFilters().putAll(this.getFilters()); + return getInnerObject(); } } diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java index dfba0a364a..1f052d495a 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java @@ -277,7 +277,6 @@ public abstract class SchedTaskDirectoryPanel<T extends SchedTaskTO> @Override public void onClick(final AjaxRequestTarget target, final T ignore) { - SchedTaskDirectoryPanel.this.getTogglePanel().close(target); send(SchedTaskDirectoryPanel.this, Broadcast.EXACT, new AjaxWizard.EditItemActionEvent<>( restClient.readTask(taskType, model.getObject().getKey()), diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksTogglePanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksTogglePanel.java index 68e3f86f36..2935f55f5a 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksTogglePanel.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksTogglePanel.java @@ -27,9 +27,10 @@ import org.apache.syncope.client.console.panels.TogglePanel; import org.apache.syncope.client.console.panels.ToggleableTarget; import org.apache.syncope.client.console.policies.PolicyRuleWrapper; import org.apache.syncope.client.console.tasks.CommandWrapper; +import org.apache.syncope.client.console.wizards.any.AnyObjectWrapper; import org.apache.syncope.client.console.wizards.any.GroupWrapper; import org.apache.syncope.client.ui.commons.status.StatusBean; -import org.apache.syncope.client.ui.commons.wizards.any.AnyWrapper; +import org.apache.syncope.client.ui.commons.wizards.any.EntityWrapper; import org.apache.syncope.client.ui.commons.wizards.any.UserWrapper; import org.apache.syncope.common.keymaster.client.api.model.Domain; import org.apache.syncope.common.lib.Attr; @@ -72,9 +73,7 @@ public class ActionLinksTogglePanel<T extends Serializable> extends TogglePanel< public void updateHeader(final AjaxRequestTarget target, final Serializable modelObject) { final String header; - if (modelObject == null) { - header = new ResourceModel("actions", StringUtils.EMPTY).getObject(); - } else if (modelObject instanceof UserTO) { + if (modelObject instanceof UserTO) { header = ((UserTO) modelObject).getUsername(); } else if (modelObject instanceof UserWrapper) { header = ((UserWrapper) modelObject).getInnerObject().getUsername(); @@ -84,9 +83,8 @@ public class ActionLinksTogglePanel<T extends Serializable> extends TogglePanel< header = ((GroupWrapper) modelObject).getInnerObject().getName(); } else if (modelObject instanceof AnyObjectTO) { header = ((AnyObjectTO) modelObject).getName(); - } else if (modelObject instanceof AnyWrapper - && AnyWrapper.class.cast(modelObject).getInnerObject() instanceof AnyObjectTO) { - header = ((AnyObjectTO) ((AnyWrapper) modelObject).getInnerObject()).getName(); + } else if (modelObject instanceof AnyObjectWrapper) { + header = ((AnyObjectWrapper) modelObject).getInnerObject().getName(); } else if (modelObject instanceof Attr) { header = ((Attr) modelObject).getSchema(); } else if (modelObject instanceof ConfParam) { @@ -118,6 +116,9 @@ public class ActionLinksTogglePanel<T extends Serializable> extends TogglePanel< header = ((NamedEntityTO) modelObject).getName(); } else if (modelObject instanceof EntityTO) { header = ((EntityTO) modelObject).getKey(); + } else if (modelObject instanceof EntityWrapper) { + EntityTO inner = ((EntityWrapper) modelObject).getInnerObject(); + header = inner instanceof NamedEntityTO ? ((NamedEntityTO) inner).getName() : inner.getKey(); } else { header = new ResourceModel("actions", StringUtils.EMPTY).getObject(); } diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel.java index 5cce59c6ab..3a33c3bafa 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel.java @@ -19,6 +19,7 @@ package org.apache.syncope.client.console.wicket.markup.html.form; import java.io.Serializable; +import java.util.Optional; import org.apache.commons.lang3.StringUtils; import org.apache.syncope.client.console.SyncopeConsoleSession; import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink.ActionType; @@ -62,15 +63,10 @@ public final class ActionPanel<T extends Serializable> extends Panel { setOutputMarkupId(true); this.action = action; - final T obj; - if (model == null) { - obj = null; - } else { - obj = model.getObject(); - } + T obj = Optional.ofNullable(model).map(IModel::getObject).orElse(null); - final boolean enabled; - final AbstractLink actionLink; + boolean enabled; + AbstractLink actionLink; if (action.getLink() == null || action.getType() == ActionType.NOT_FOUND) { enabled = true; @@ -145,14 +141,14 @@ public final class ActionPanel<T extends Serializable> extends Panel { actionIcon = new Label("actionIcon", ""); actionLink.add(actionIcon); - final String clazz = action.getType().name().toLowerCase() + ".class"; + String clazz = action.getType().name().toLowerCase() + ".class"; actionIcon.add(new AttributeModifier("class", new ResourceModel(clazz, clazz))); - final String title = action.getType().name().toLowerCase() + ".title"; - final IModel<String> titleModel = new ResourceModel(title, title); + String title = action.getType().name().toLowerCase() + ".title"; + IModel<String> titleModel = new ResourceModel(title, title); actionIcon.add(new AttributeModifier("title", titleModel)); - final String alt = action.getType().name().toLowerCase() + ".alt"; + String alt = action.getType().name().toLowerCase() + ".alt"; actionIcon.add(new AttributeModifier("alt", new ResourceModel(alt, alt))); actionLabel = new Label("label", titleModel); @@ -164,21 +160,13 @@ public final class ActionPanel<T extends Serializable> extends Panel { // --------------------------- actionLabel.setVisible(action.isVisibleLabel()); - if (action.getLabel() != null) { - actionLabel.setDefaultModel(action.getLabel()); - } + Optional.ofNullable(action.getLabel()).ifPresent(actionLabel::setDefaultModel); - if (action.getTitle() != null) { - actionIcon.add(new AttributeModifier("title", action.getTitle())); - } + Optional.ofNullable(action.getTitle()).ifPresent(t -> actionIcon.add(new AttributeModifier("title", t))); - if (action.getAlt() != null) { - actionIcon.add(new AttributeModifier("alt", action.getAlt())); - } + Optional.ofNullable(action.getAlt()).ifPresent(a -> actionIcon.add(new AttributeModifier("alt", a))); - if (action.getIcon() != null) { - actionIcon.add(new AttributeModifier("class", action.getIcon())); - } + Optional.ofNullable(action.getIcon()).ifPresent(i -> actionIcon.add(new AttributeModifier("class", i))); this.disableIndicator = !action.hasIndicator(); // --------------------------- diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/DynRealmWrapper.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/DynRealmWrapper.java index 13caee27d6..ce16a7f8f7 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/DynRealmWrapper.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/DynRealmWrapper.java @@ -18,7 +18,6 @@ */ package org.apache.syncope.client.console.wizards; -import java.io.Serializable; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -26,26 +25,25 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.syncope.client.console.panels.search.SearchClause; import org.apache.syncope.client.console.panels.search.SearchUtils; import org.apache.syncope.client.lib.SyncopeClient; +import org.apache.syncope.client.ui.commons.wizards.any.EntityWrapper; import org.apache.syncope.common.lib.search.AbstractFiqlSearchConditionBuilder; import org.apache.syncope.common.lib.to.DynRealmTO; import org.apache.syncope.common.lib.types.AnyTypeKind; -public class DynRealmWrapper implements Serializable { +public class DynRealmWrapper extends EntityWrapper<DynRealmTO> { private static final long serialVersionUID = 7226128615964284614L; - private final DynRealmTO dynRealmTO; - private Map<String, List<SearchClause>> dynClauses; public DynRealmWrapper(final DynRealmTO dynRealmTO) { - this.dynRealmTO = dynRealmTO; + super(dynRealmTO); getDynClauses(); } public final Map<String, List<SearchClause>> getDynClauses() { if (this.dynClauses == null) { - this.dynClauses = SearchUtils.getSearchClauses(this.dynRealmTO.getDynMembershipConds()); + this.dynClauses = SearchUtils.getSearchClauses(getInnerObject().getDynMembershipConds()); } return this.dynClauses; } @@ -78,12 +76,8 @@ public class DynRealmWrapper implements Serializable { } public DynRealmTO fillDynamicConditions() { - this.dynRealmTO.getDynMembershipConds().clear(); - this.dynRealmTO.getDynMembershipConds().putAll(this.getDynMembershipConds()); - return this.dynRealmTO; - } - - public DynRealmTO getInnerObject() { - return this.dynRealmTO; + getInnerObject().getDynMembershipConds().clear(); + getInnerObject().getDynMembershipConds().putAll(this.getDynMembershipConds()); + return getInnerObject(); } } diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectTemplateWizardBuilder.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectTemplateWizardBuilder.java index b19abc06a9..709626917a 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectTemplateWizardBuilder.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectTemplateWizardBuilder.java @@ -50,7 +50,7 @@ public class AnyObjectTemplateWizardBuilder extends AnyObjectWizardBuilder this.templatable = templatable; if (templatable.getTemplates().containsKey(anyType)) { - setItem(new AnyWrapper<>(AnyObjectTO.class.cast(templatable.getTemplates().get(anyType)))); + setItem(new AnyObjectWrapper(AnyObjectTO.class.cast(templatable.getTemplates().get(anyType)))); } else { AnyObjectTO anyObjectTO = new AnyObjectTO(); anyObjectTO.setType(anyType); @@ -58,7 +58,7 @@ public class AnyObjectTemplateWizardBuilder extends AnyObjectWizardBuilder anyObjectTO.setRealm( String.format("'%s'", RealmsUtils.getFullPath(RealmTO.class.cast(templatable).getFullPath()))); } - setItem(new AnyWrapper<>(anyObjectTO)); + setItem(new AnyObjectWrapper(anyObjectTO)); } } diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java index a394edf827..b02247bc98 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java @@ -36,9 +36,11 @@ import org.apache.syncope.client.ui.commons.wizards.any.AnyForm; import org.apache.syncope.client.ui.commons.wizards.any.AnyWrapper; import org.apache.syncope.client.ui.commons.wizards.any.UserWrapper; import org.apache.syncope.common.lib.Attr; +import org.apache.syncope.common.lib.to.AnyObjectTO; import org.apache.syncope.common.lib.to.AnyTO; import org.apache.syncope.common.lib.to.GroupTO; import org.apache.syncope.common.lib.to.GroupableRelatableTO; +import org.apache.syncope.common.lib.to.UserTO; import org.apache.wicket.PageReference; import org.apache.wicket.extensions.wizard.WizardModel; @@ -46,6 +48,15 @@ public abstract class AnyWizardBuilder<A extends AnyTO> extends AbstractAnyWizar private static final long serialVersionUID = -2480279868319546243L; + @SuppressWarnings("unchecked") + protected static <T extends AnyTO> AnyWrapper<T> wrapper(final T anyTO) { + return (AnyWrapper<T>) (anyTO instanceof UserTO + ? new UserWrapper((UserTO) anyTO) + : anyTO instanceof GroupTO + ? new GroupWrapper((GroupTO) anyTO) + : new AnyObjectWrapper((AnyObjectTO) anyTO)); + } + protected final List<String> anyTypeClasses; protected AbstractAnyFormLayout<A, ? extends AnyForm<A>> formLayoutInfo; @@ -64,7 +75,7 @@ public abstract class AnyWizardBuilder<A extends AnyTO> extends AbstractAnyWizar final AbstractAnyFormLayout<A, ? extends AnyForm<A>> formLayoutInfo, final PageReference pageRef) { - super(new AnyWrapper<>(anyTO), pageRef); + super(wrapper(anyTO), pageRef); this.anyTypeClasses = anyTypeClasses; this.formLayoutInfo = formLayoutInfo; } diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWrapper.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWrapper.java index 70cfb999ff..03ba628f51 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWrapper.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWrapper.java @@ -18,30 +18,28 @@ */ package org.apache.syncope.client.console.wizards.role; -import java.io.Serializable; import java.util.List; import org.apache.commons.collections4.CollectionUtils; import org.apache.syncope.client.console.panels.search.SearchClause; import org.apache.syncope.client.console.panels.search.SearchUtils; import org.apache.syncope.client.lib.SyncopeClient; +import org.apache.syncope.client.ui.commons.wizards.any.EntityWrapper; import org.apache.syncope.common.lib.to.RoleTO; -public class RoleWrapper implements Serializable { +public class RoleWrapper extends EntityWrapper<RoleTO> { private static final long serialVersionUID = 8058288034211558376L; - private final RoleTO roleTO; - private List<SearchClause> dynClauses; public RoleWrapper(final RoleTO roleTO) { - this.roleTO = roleTO; + super(roleTO); getDynClauses(); } public final List<SearchClause> getDynClauses() { if (this.dynClauses == null) { - this.dynClauses = SearchUtils.getSearchClauses(this.roleTO.getDynMembershipCond()); + this.dynClauses = SearchUtils.getSearchClauses(getInnerObject().getDynMembershipCond()); } return this.dynClauses; } @@ -53,17 +51,13 @@ public class RoleWrapper implements Serializable { public String getDynMembershipCond() { if (CollectionUtils.isEmpty(this.dynClauses)) { return null; - } else { - return SearchUtils.buildFIQL(this.dynClauses, SyncopeClient.getUserSearchConditionBuilder()); } - } - public RoleTO fillDynamicConditions() { - this.roleTO.setDynMembershipCond(this.getDynMembershipCond()); - return this.roleTO; + return SearchUtils.buildFIQL(this.dynClauses, SyncopeClient.getUserSearchConditionBuilder()); } - public RoleTO getInnerObject() { - return this.roleTO; + public RoleTO fillDynamicConditions() { + getInnerObject().setDynMembershipCond(this.getDynMembershipCond()); + return getInnerObject(); } } diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/AccessTokenDirectoryPanel_it.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/AccessTokenDirectoryPanel_it.properties index abd2ed82e6..c59b128e78 100644 --- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/AccessTokenDirectoryPanel_it.properties +++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/AccessTokenDirectoryPanel_it.properties @@ -14,7 +14,7 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -any.edit=Modifica ruolo ${roleTO.key} +any.edit=Modifica token di accesso ${accessTokenTO.owner} any.new=Nuovo token di accesso owner=Proprietario expirationTime=Termine diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/AccessTokenDirectoryPanel_pt_BR.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/AccessTokenDirectoryPanel_pt_BR.properties index 34245133fa..34ea148f6e 100644 --- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/AccessTokenDirectoryPanel_pt_BR.properties +++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/AccessTokenDirectoryPanel_pt_BR.properties @@ -14,7 +14,7 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -any.edit=Alterar fun\u00e7\u00e3o ${roleTO.key} +any.edit=Edit access token ${accessTokenTO.owner} any.new=Novo token de acesso owner=Propriet\u00e1rio expirationTime=Termo diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/AccessTokenDirectoryPanel_ru.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/AccessTokenDirectoryPanel_ru.properties index d6ff9be932..63fc14bcc7 100644 --- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/AccessTokenDirectoryPanel_ru.properties +++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/AccessTokenDirectoryPanel_ru.properties @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. # -any.edit=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u043e\u043b\u044c ${roleTO.key} +any.edit=Edit access token ${accessTokenTO.owner} any.new=\u041d\u043e\u0432\u044b\u0439 \u043c\u0430\u0440\u043a\u0435\u0440 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 owner=\u0412\u043b\u0430\u0434\u0435\u043b\u0435\u0446 expirationTime=\u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u0441\u0440\u043e\u043a\u0430 diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel.properties index 3a27730cea..44b2c2716b 100644 --- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel.properties +++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel.properties @@ -14,6 +14,6 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -any.edit=Edit role ${roleTO.key} +any.edit=Edit role ${innerObject.key} any.new=New role role.members=Role '${key}' members diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel_fr_CA.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel_fr_CA.properties index 8f6a85dae3..52f3caa57f 100644 --- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel_fr_CA.properties +++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel_fr_CA.properties @@ -14,6 +14,6 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -any.edit=Modifier r�le ${roleTO.key} -any.new=Nouveau r�le -role.members=Membres r�le '${key}' +any.edit=Modifier r\u00f4le ${innerObject.key} +any.new=Nouveau r\u00f4le +role.members=Membres r\u00f4le '${key}' diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel_it.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel_it.properties index 04a466ee5a..3d76a1ca77 100644 --- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel_it.properties +++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel_it.properties @@ -14,6 +14,6 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -any.edit=Modifica ruolo ${roleTO.key} +any.edit=Modifica ruolo ${innerObject.key} any.new=Nuovo ruolo role.members=Utenti membri del rulo '${key}' diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel_ja.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel_ja.properties index 12cabbc484..6cbef33f88 100644 --- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel_ja.properties +++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel_ja.properties @@ -14,6 +14,6 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -any.edit=\u30ed\u30fc\u30eb ${roleTO.key} \u3092\u7de8\u96c6 +any.edit=\u30ed\u30fc\u30eb ${innerObject.key} \u3092\u7de8\u96c6 any.new=\u65b0\u3057\u3044\u30ed\u30fc\u30eb role.members=\u30ed\u30fc\u30eb '${key}' \u30e1\u30f3\u30d0\u30fc diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel_pt_BR.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel_pt_BR.properties index 1de6e43c02..110128e430 100644 --- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel_pt_BR.properties +++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel_pt_BR.properties @@ -14,6 +14,6 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -any.edit=Alterar fun\u00e7\u00e3o ${roleTO.key} +any.edit=Alterar fun\u00e7\u00e3o ${innerObject.key} any.new=Novo fun\u00e7\u00e3o role.members=Role '${key}' members diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel_ru.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel_ru.properties index b292ea7ecb..d2b37cdc28 100644 --- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel_ru.properties +++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/RoleDirectoryPanel_ru.properties @@ -15,6 +15,6 @@ # specific language governing permissions and limitations # under the License. # -any.edit=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u043e\u043b\u044c ${roleTO.key} +any.edit=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u043e\u043b\u044c ${innerObject.key} any.new=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0440\u043e\u043b\u044c role.members=\u0423\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438 \u0440\u043e\u043b\u0438 '${key}'