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 756377b [SYNCOPE-1568] Small clean-up and improvements to make the
new things more general
756377b is described below
commit 756377bf527b09216b0eddeee1cea1b0a8000563
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Mon Jun 1 14:20:24 2020 +0200
[SYNCOPE-1568] Small clean-up and improvements to make the new things more
general
---
...erRequestApplier.java => UserFormFinalize.java} | 9 ++--
.../init/ClassPathScanImplementationLookup.java | 51 ++++++++++----------
.../syncope/client/console/wizards/AjaxWizard.java | 4 +-
.../console/wizards/any/DefaultApplierImpl.java | 35 --------------
.../any/{Applier.java => UserFormFinalizer.java} | 12 +++--
.../any/UserFormFinalizerUtils.java} | 54 +++++++++++++---------
.../console/wizards/any/UserWizardBuilder.java | 7 ++-
.../panels/UserRequestFormDirectoryPanel.java | 41 ++++++++++++----
...lierImpl.java => UserRequestFormFinalizer.java} | 29 +++++-------
9 files changed, 123 insertions(+), 119 deletions(-)
diff --git
a/client/console/src/main/java/org/apache/syncope/client/console/annotations/UserRequestApplier.java
b/client/console/src/main/java/org/apache/syncope/client/console/annotations/UserFormFinalize.java
similarity index 87%
rename from
client/console/src/main/java/org/apache/syncope/client/console/annotations/UserRequestApplier.java
rename to
client/console/src/main/java/org/apache/syncope/client/console/annotations/UserFormFinalize.java
index d2a6682..acea2bd 100644
---
a/client/console/src/main/java/org/apache/syncope/client/console/annotations/UserRequestApplier.java
+++
b/client/console/src/main/java/org/apache/syncope/client/console/annotations/UserFormFinalize.java
@@ -23,12 +23,13 @@ import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import org.apache.syncope.client.console.wizards.AjaxWizard;
@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
-public @interface UserRequestApplier {
-
- String[] mode() default {};
-
+public @interface UserFormFinalize {
+
+ AjaxWizard.Mode mode() default AjaxWizard.Mode.EDIT_APPROVAL;
+
}
diff --git
a/client/console/src/main/java/org/apache/syncope/client/console/init/ClassPathScanImplementationLookup.java
b/client/console/src/main/java/org/apache/syncope/client/console/init/ClassPathScanImplementationLookup.java
index b5c2811..9ca47eb 100644
---
a/client/console/src/main/java/org/apache/syncope/client/console/init/ClassPathScanImplementationLookup.java
+++
b/client/console/src/main/java/org/apache/syncope/client/console/init/ClassPathScanImplementationLookup.java
@@ -35,12 +35,12 @@ import
org.apache.syncope.client.console.annotations.BinaryPreview;
import org.apache.syncope.client.console.annotations.ExtPage;
import org.apache.syncope.client.console.annotations.ExtWidget;
import org.apache.syncope.client.console.annotations.Resource;
-import org.apache.syncope.client.console.annotations.UserRequestApplier;
import org.apache.syncope.client.console.pages.BasePage;
import org.apache.syncope.client.console.panels.SSOLoginFormPanel;
import
org.apache.syncope.client.console.wicket.markup.html.form.preview.AbstractBinaryPreviewer;
import org.apache.syncope.client.console.widgets.BaseExtWidget;
import org.apache.syncope.client.console.widgets.ExtAlertWidget;
+import org.apache.syncope.client.console.wizards.AjaxWizard;
import org.apache.syncope.common.lib.policy.AccountRuleConf;
import org.apache.syncope.common.lib.policy.PasswordRuleConf;
import org.apache.syncope.common.lib.policy.PullCorrelationRuleConf;
@@ -55,7 +55,8 @@ import org.slf4j.LoggerFactory;
import
org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider;
import org.springframework.core.type.filter.AssignableTypeFilter;
import org.springframework.util.ClassUtils;
-import org.apache.syncope.client.console.wizards.any.Applier;
+import org.apache.syncope.client.console.wizards.any.UserFormFinalizer;
+import org.apache.syncope.client.console.annotations.UserFormFinalize;
public class ClassPathScanImplementationLookup {
@@ -94,6 +95,8 @@ public class ClassPathScanImplementationLookup {
private List<Class<? extends AbstractBinaryPreviewer>> previewers;
+ private List<Class<? extends UserFormFinalizer>> userFormFinalizers;
+
private List<Class<? extends BaseExtPage>> extPages;
private List<Class<? extends BaseExtWidget>> extWidgets;
@@ -114,8 +117,6 @@ public class ClassPathScanImplementationLookup {
private List<Class<? extends AbstractResource>> resources;
- private List<Class<? extends Applier>> appliers;
-
/**
* This method can be overridden by subclasses to customize classpath scan.
*
@@ -139,7 +140,7 @@ public class ClassPathScanImplementationLookup {
pullCorrelationRuleConfs = new HashMap<>();
pushCorrelationRuleConfs = new HashMap<>();
resources = new ArrayList<>();
- appliers = new ArrayList<>();
+ userFormFinalizers = new ArrayList<>();
ClassPathScanningCandidateComponentProvider scanner = new
ClassPathScanningCandidateComponentProvider(false);
scanner.addIncludeFilter(new AssignableTypeFilter(BasePage.class));
@@ -154,7 +155,7 @@ public class ClassPathScanImplementationLookup {
scanner.addIncludeFilter(new
AssignableTypeFilter(PullCorrelationRuleConf.class));
scanner.addIncludeFilter(new
AssignableTypeFilter(PushCorrelationRuleConf.class));
scanner.addIncludeFilter(new
AssignableTypeFilter(AbstractResource.class));
- scanner.addIncludeFilter(new AssignableTypeFilter(Applier.class));
+ scanner.addIncludeFilter(new
AssignableTypeFilter(UserFormFinalizer.class));
scanner.findCandidateComponents(getBasePackage()).forEach(bd -> {
try {
@@ -207,8 +208,8 @@ public class ClassPathScanImplementationLookup {
LOG.error("Could not find annotation {} in {},
ignoring",
Resource.class.getName(), clazz.getName());
}
- } else if (Applier.class.isAssignableFrom(clazz)) {
- appliers.add((Class<? extends Applier>) clazz);
+ } else if
(UserFormFinalizer.class.isAssignableFrom(clazz)) {
+ userFormFinalizers.add((Class<? extends
UserFormFinalizer>) clazz);
}
}
} catch (Throwable t) {
@@ -216,7 +217,9 @@ public class ClassPathScanImplementationLookup {
}
});
pages = Collections.unmodifiableList(pages);
+
previewers = Collections.unmodifiableList(previewers);
+ userFormFinalizers = Collections.unmodifiableList(userFormFinalizers);
extPages.sort(Comparator.comparing(o ->
o.getAnnotation(ExtPage.class).priority()));
extPages = Collections.unmodifiableList(extPages);
@@ -237,9 +240,8 @@ public class ClassPathScanImplementationLookup {
resources = Collections.unmodifiableList(resources);
- appliers = Collections.unmodifiableList(appliers);
-
LOG.debug("Binary previewers found: {}", previewers);
+ LOG.debug("User Form finalizers found {}", userFormFinalizers);
LOG.debug("Extension pages found: {}", extPages);
LOG.debug("Extension widgets found: {}", extWidgets);
LOG.debug("Extension alert widgets found: {}", extAlertWidgets);
@@ -250,7 +252,6 @@ public class ClassPathScanImplementationLookup {
LOG.debug("Pull Correlation Rule configurations found: {}",
pullCorrelationRuleConfs);
LOG.debug("Push Correlation Rule configurations found: {}",
pushCorrelationRuleConfs);
LOG.debug("Resources found: {}", resources);
- LOG.debug("Applyer found {}", appliers);
}
public Class<? extends AbstractBinaryPreviewer> getPreviewerClass(final
String mimeType) {
@@ -267,6 +268,20 @@ public class ClassPathScanImplementationLookup {
return previewer;
}
+ public List<Class<? extends UserFormFinalizer>>
getUserFormFinalizerClasses(final AjaxWizard.Mode mode) {
+ List<Class<? extends UserFormFinalizer>> classes = new ArrayList<>();
+
+ userFormFinalizers.forEach(candidate -> {
+ if (candidate.isAnnotationPresent(UserFormFinalize.class)
+ && candidate.getAnnotation(UserFormFinalize.class).mode()
== mode) {
+
+ classes.add(candidate);
+ }
+ });
+
+ return classes;
+ }
+
public List<Class<? extends BasePage>> getPageClasses() {
return pages;
}
@@ -310,18 +325,4 @@ public class ClassPathScanImplementationLookup {
public List<Class<? extends AbstractResource>> getResources() {
return resources;
}
-
- public Class<? extends Applier> getApplyerClass(final String mode) {
- LOG.debug("Searching for applier class for mode: {}", mode);
- Class<? extends Applier> applier = null;
- for (Class<? extends Applier> candidate : appliers) {
- LOG.debug("Evaluating applier class {} for mode {}",
candidate.getName(), mode);
- if (candidate.isAnnotationPresent(UserRequestApplier.class)
- &&
ArrayUtils.contains(candidate.getAnnotation(UserRequestApplier.class).mode(),
mode)) {
- LOG.debug("Found existing applier for mode {}: {}", mode,
candidate.getName());
- applier = candidate;
- }
- }
- return applier;
- }
}
diff --git
a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizard.java
b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizard.java
index a1bc067..bbe664e 100644
---
a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizard.java
+++
b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizard.java
@@ -66,9 +66,9 @@ public abstract class AjaxWizard<T extends Serializable>
extends Wizard
public enum Mode {
CREATE,
EDIT,
+ EDIT_APPROVAL,
TEMPLATE,
- READONLY,
- EDIT_APPROVAL;
+ READONLY;
}
diff --git
a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DefaultApplierImpl.java
b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DefaultApplierImpl.java
deleted file mode 100644
index 76beeb5..0000000
---
a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DefaultApplierImpl.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.client.console.wizards.any;
-
-import org.apache.syncope.client.console.annotations.UserRequestApplier;
-
-@UserRequestApplier(mode = "EDIT")
-public class DefaultApplierImpl implements Applier {
-
- public DefaultApplierImpl() {
-
- }
-
- @Override
- public void getClaimerForm(final String key) {
-
- }
-
-}
diff --git
a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Applier.java
b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserFormFinalizer.java
similarity index 81%
rename from
client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Applier.java
rename to
client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserFormFinalizer.java
index 59a4cfe..6cc334e 100644
---
a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Applier.java
+++
b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserFormFinalizer.java
@@ -18,7 +18,13 @@
*/
package org.apache.syncope.client.console.wizards.any;
-public interface Applier {
-
- void getClaimerForm(String key);
+public interface UserFormFinalizer {
+
+ default void beforeUpdate(String userKey) {
+ // nothing to do;
+ }
+
+ default void afterUpdate(String userKey) {
+ // nothing to do;
+ }
}
diff --git
a/client/console/src/main/java/org/apache/syncope/client/console/commons/ApplierUtils.java
b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserFormFinalizerUtils.java
similarity index 52%
rename from
client/console/src/main/java/org/apache/syncope/client/console/commons/ApplierUtils.java
rename to
client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserFormFinalizerUtils.java
index bdae41a..246f070 100644
---
a/client/console/src/main/java/org/apache/syncope/client/console/commons/ApplierUtils.java
+++
b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserFormFinalizerUtils.java
@@ -16,41 +16,53 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.syncope.client.console.commons;
+package org.apache.syncope.client.console.wizards.any;
-import org.apache.commons.lang3.StringUtils;
+import java.util.ArrayList;
+import java.util.List;
import org.apache.syncope.client.console.SyncopeConsoleApplication;
import
org.apache.syncope.client.console.init.ClassPathScanImplementationLookup;
import org.apache.syncope.client.console.init.ConsoleInitializer;
-import org.apache.syncope.client.console.wizards.any.Applier;
+import org.apache.syncope.client.console.wizards.AjaxWizard;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.util.ClassUtils;
-public final class ApplierUtils {
+public final class UserFormFinalizerUtils {
- public static ApplierUtils getInstance() {
- return new ApplierUtils();
+ private static final Logger LOG =
LoggerFactory.getLogger(UserFormFinalizerUtils.class);
+
+ private static UserFormFinalizerUtils INSTANCE;
+
+ public static UserFormFinalizerUtils getInstance() {
+ synchronized (LOG) {
+ if (INSTANCE == null) {
+ INSTANCE = new UserFormFinalizerUtils();
+ }
+ }
+ return INSTANCE;
}
private final ClassPathScanImplementationLookup
classPathScanImplementationLookup;
- private ApplierUtils() {
+ private UserFormFinalizerUtils() {
classPathScanImplementationLookup =
(ClassPathScanImplementationLookup) SyncopeConsoleApplication.get().
getServletContext().getAttribute(ConsoleInitializer.CLASSPATH_LOOKUP);
}
-
- public Applier getApplier(final String mode) {
- if (StringUtils.isBlank(mode)) {
- return null;
- }
- Class<? extends Applier> applier =
classPathScanImplementationLookup.getApplyerClass(mode);
- try {
- return applier == null
- ? null
- : ClassUtils.getConstructorIfAvailable(applier).
- newInstance();
- } catch (Exception e) {
- return null;
- }
+ public List<UserFormFinalizer> getFormFinalizers(final AjaxWizard.Mode
mode) {
+ List<UserFormFinalizer> finalizers = new ArrayList<>();
+
+
classPathScanImplementationLookup.getUserFormFinalizerClasses(mode).forEach(applier
-> {
+ if (applier != null) {
+ try {
+
finalizers.add(ClassUtils.getConstructorIfAvailable(applier).newInstance());
+ } catch (Exception e) {
+ LOG.error("Could not instantiate {}", applier, e);
+ }
+ }
+ });
+
+ return finalizers;
}
}
diff --git
a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java
b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java
index ed8d8b7..951bf6f 100644
---
a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java
+++
b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java
@@ -22,7 +22,6 @@ import java.io.Serializable;
import java.util.List;
import java.util.Optional;
import org.apache.commons.lang3.StringUtils;
-import org.apache.syncope.client.console.commons.ApplierUtils;
import org.apache.syncope.client.console.layout.UserForm;
import org.apache.syncope.client.console.layout.UserFormLayoutInfo;
import org.apache.syncope.client.console.rest.UserRestClient;
@@ -82,9 +81,13 @@ public class UserWizardBuilder extends
AnyWizardBuilder<UserTO> implements UserF
result = new ProvisioningResult<>();
result.setEntity(inner);
} else {
+ List<UserFormFinalizer> finalizers =
UserFormFinalizerUtils.getInstance().getFormFinalizers(this.mode);
+
+ finalizers.forEach(finalizer ->
finalizer.beforeUpdate(patch.getKey()));
+
result =
userRestClient.update(getOriginalItem().getInnerObject().getETagValue(), patch);
-
ApplierUtils.getInstance().getApplier(this.mode.name()).getClaimerForm(result.getEntity().getKey());
+ finalizers.forEach(finalizer ->
finalizer.afterUpdate(patch.getKey()));
}
}
diff --git
a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDirectoryPanel.java
b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDirectoryPanel.java
index 66ee573..b3f9091 100644
---
a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDirectoryPanel.java
+++
b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDirectoryPanel.java
@@ -18,6 +18,8 @@
*/
package org.apache.syncope.client.console.panels;
+import static
org.apache.syncope.client.console.panels.TogglePanel.HEADER_FIRST_ABBREVIATION;
+
import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
import java.io.Serializable;
import java.util.ArrayList;
@@ -25,6 +27,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
+import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.commons.DirectoryDataProvider;
@@ -36,10 +39,10 @@ import
org.apache.syncope.client.console.rest.AnyTypeRestClient;
import
org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.DatePropertyColumn;
import
org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
+import
org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksTogglePanel;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionsPanel;
import org.apache.syncope.client.console.widgets.UserRequestFormsWidget;
import org.apache.syncope.client.console.wizards.AjaxWizard;
-import org.apache.syncope.client.console.wizards.any.UserWizardBuilder;
import org.apache.syncope.common.lib.AnyOperations;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.to.UserTO;
@@ -66,6 +69,8 @@ public class UserRequestFormDirectoryPanel
private static final String PREF_USER_REQUEST_FORM_PAGINATOR_ROWS =
"userrequestform.paginator.rows";
+ private final AnyTypeRestClient anyTypeRestClient = new
AnyTypeRestClient();
+
protected final BaseModal<UserRequestForm> manageFormModal = new
BaseModal<UserRequestForm>("outer") {
private static final long serialVersionUID = 389935548143327858L;
@@ -132,6 +137,24 @@ public class UserRequestFormDirectoryPanel
}
@Override
+ protected ActionLinksTogglePanel<UserRequestForm> actionTogglePanel() {
+ return new ActionLinksTogglePanel<UserRequestForm>(Constants.OUTER,
pageRef) {
+
+ private static final long serialVersionUID = -7688359318035249200L;
+
+ @Override
+ public void updateHeader(final AjaxRequestTarget target, final
Serializable object) {
+ if (object instanceof UserRequestForm) {
+ setHeader(target, StringUtils.abbreviate(
+ ((UserRequestForm) object).getUsername(),
HEADER_FIRST_ABBREVIATION));
+ } else {
+ super.updateHeader(target, object);
+ }
+ }
+ };
+ }
+
+ @Override
public ActionsPanel<UserRequestForm> getActions(final
IModel<UserRequestForm> model) {
final ActionsPanel<UserRequestForm> panel = super.getActions(model);
@@ -219,21 +242,18 @@ public class UserRequestFormDirectoryPanel
UserRequestForm formTO = model.getObject();
UserTO newUserTO;
- UserTO previousUserTO;
if (formTO.getUserPatch() == null) {
newUserTO = formTO.getUserTO();
if (newUserTO != null) {
// SYNCOPE-1563 do not use the password into
formTO.getUserTO()
newUserTO.setPassword(null);
}
- previousUserTO = null;
} else if (formTO.getUserTO() == null) {
// make it stronger by handling possible NPE
- previousUserTO = new UserTO();
+ UserTO previousUserTO = new UserTO();
previousUserTO.setKey(formTO.getUserPatch().getKey());
newUserTO = AnyOperations.patch(previousUserTO,
formTO.getUserPatch());
} else {
- previousUserTO = formTO.getUserTO();
formTO.getUserTO().setKey(formTO.getUserPatch().getKey());
formTO.getUserTO().setPassword(null);
newUserTO = AnyOperations.patch(formTO.getUserTO(),
formTO.getUserPatch());
@@ -241,11 +261,12 @@ public class UserRequestFormDirectoryPanel
AjaxWizard.EditItemActionEvent<UserTO> editItemActionEvent =
new AjaxWizard.EditItemActionEvent<>(newUserTO,
target);
-
editItemActionEvent.forceModalPanel(UserWizardBuilder.class.cast(AnyLayoutUtils.newLayoutInfo(newUserTO,
- new
AnyTypeRestClient().read(AnyTypeKind.USER.name()).getClasses(),
-
AnyLayoutUtils.fetch(Collections.singletonList(AnyTypeKind.USER.name())).getUser(),
pageRef))
- .build(BaseModal.CONTENT_ID, 0,
AjaxWizard.Mode.EDIT_APPROVAL)
- );
+
editItemActionEvent.forceModalPanel(AnyLayoutUtils.newLayoutInfo(
+ newUserTO,
+
anyTypeRestClient.read(AnyTypeKind.USER.name()).getClasses(),
+
AnyLayoutUtils.fetch(Collections.singletonList(AnyTypeKind.USER.name())).getUser(),
+ pageRef).
+ build(BaseModal.CONTENT_ID, 0,
AjaxWizard.Mode.EDIT_APPROVAL));
send(UserRequestFormDirectoryPanel.this, Broadcast.EXACT,
editItemActionEvent);
}
diff --git
a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/wizards/any/UserRequestFormApplierImpl.java
b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/wizards/any/UserRequestFormFinalizer.java
similarity index 66%
rename from
ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/wizards/any/UserRequestFormApplierImpl.java
rename to
ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/wizards/any/UserRequestFormFinalizer.java
index 638f656..b9de3f7 100644
---
a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/wizards/any/UserRequestFormApplierImpl.java
+++
b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/wizards/any/UserRequestFormFinalizer.java
@@ -19,29 +19,24 @@
package org.apache.syncope.client.console.wizards.any;
import org.apache.syncope.client.console.SyncopeConsoleSession;
-import org.apache.syncope.client.console.annotations.UserRequestApplier;
import org.apache.syncope.client.console.rest.UserRequestRestClient;
+import org.apache.syncope.client.console.wizards.AjaxWizard;
import org.apache.syncope.common.lib.SyncopeClientException;
+import org.apache.syncope.client.console.annotations.UserFormFinalize;
-@UserRequestApplier(mode = "EDIT_APPROVAL")
-public class UserRequestFormApplierImpl implements Applier {
+@UserFormFinalize(mode = AjaxWizard.Mode.EDIT_APPROVAL)
+public class UserRequestFormFinalizer implements UserFormFinalizer {
private final UserRequestRestClient restClient = new
UserRequestRestClient();
- public UserRequestFormApplierImpl() {
-
- }
-
@Override
- public void getClaimerForm(final String key) {
- restClient.getForm(key).ifPresent(form -> claimForm(form.getTaskId()));
- }
-
- private void claimForm(final String taskId) {
- try {
- restClient.claimForm(taskId);
- } catch (SyncopeClientException e) {
- SyncopeConsoleSession.get().onException(e);
- }
+ public void afterUpdate(final String userKey) {
+ restClient.getForm(userKey).ifPresent(form -> {
+ try {
+ restClient.claimForm(form.getTaskId());
+ } catch (SyncopeClientException e) {
+ SyncopeConsoleSession.get().onException(e);
+ }
+ });
}
}