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 2020/10/20 10:28:36 UTC
[syncope] branch 2_1_X updated: [SYNCOPE-1594] Adding top search
bar for user requests and forms
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 3a6a018 [SYNCOPE-1594] Adding top search bar for user requests and forms
3a6a018 is described below
commit 3a6a0180fa74553059543ef70c933323093da7db
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Tue Oct 20 12:28:05 2020 +0200
[SYNCOPE-1594] Adding top search bar for user requests and forms
---
.../wicket/markup/html/form/FieldPanel.java | 3 +-
.../syncope/client/console/pages/UserRequests.java | 8 +-
.../console/panels/UserRequestDirectoryPanel.java | 41 ++++++----
.../panels/UserRequestFormDirectoryPanel.java | 92 ++++++++++-----------
.../client/console/panels/UserRequestsPanel.java | 88 ++++++++++++++++++++
.../client/console/rest/UserRequestRestClient.java | 61 +++++++++-----
.../console/widgets/UserRequestFormsWidget.java | 6 +-
.../client/console/panels/UserRequestsPanel.html | 36 +++++++++
.../resources/UserRequestCancelResource.java | 4 +-
.../resources/UserRequestsFormsResource.java | 14 ++--
.../enduser/resources/UserRequestsResource.java | 12 ++-
.../resources/UserRequestsStartResource.java | 3 +-
.../syncope/core/logic/UserRequestLogic.java | 11 +--
.../rest/api/beans/UserRequestFormQuery.java | 55 -------------
.../rest/api/service/UserRequestService.java | 9 +--
.../rest/cxf/service/UserRequestServiceImpl.java | 26 +++---
.../syncope/fit/core/AuthenticationITCase.java | 6 +-
.../apache/syncope/fit/core/UserRequestITCase.java | 94 +++++++++++-----------
.../apache/syncope/fit/core/UserSelfITCase.java | 64 +++++++--------
19 files changed, 365 insertions(+), 268 deletions(-)
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/FieldPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/FieldPanel.java
index 0971c1d..1aa721a 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/FieldPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/FieldPanel.java
@@ -98,6 +98,7 @@ public abstract class FieldPanel<T extends Serializable> extends AbstractFieldPa
return this;
}
+ @Override
public FieldPanel<T> setReadOnly(final boolean readOnly) {
field.setEnabled(!readOnly);
return this;
@@ -148,7 +149,7 @@ public abstract class FieldPanel<T extends Serializable> extends AbstractFieldPa
}
}
});
-
+
return this;
}
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/UserRequests.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/UserRequests.java
index c23e1ad..401d085 100644
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/UserRequests.java
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/UserRequests.java
@@ -24,6 +24,7 @@ import java.util.List;
import org.apache.syncope.client.console.BookmarkablePageLinkBuilder;
import org.apache.syncope.client.console.panels.UserRequestFormDirectoryPanel;
import org.apache.syncope.client.console.panels.UserRequestDirectoryPanel;
+import org.apache.syncope.client.console.panels.UserRequestsPanel;
import org.apache.wicket.extensions.markup.html.tabs.AbstractTab;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -48,7 +49,7 @@ public class UserRequests extends BasePage {
}
private List<ITab> buildTabList() {
- final List<ITab> tabs = new ArrayList<>();
+ List<ITab> tabs = new ArrayList<>();
tabs.add(new AbstractTab(new ResourceModel("userRequestForms")) {
@@ -56,7 +57,7 @@ public class UserRequests extends BasePage {
@Override
public Panel getPanel(final String panelId) {
- return new UserRequestFormDirectoryPanel(panelId, getPageReference());
+ return new UserRequestsPanel(panelId, new UserRequestFormDirectoryPanel("inner", getPageReference()));
}
});
@@ -66,9 +67,10 @@ public class UserRequests extends BasePage {
@Override
public Panel getPanel(final String panelId) {
- return new UserRequestDirectoryPanel(panelId, getPageReference());
+ return new UserRequestsPanel(panelId, new UserRequestDirectoryPanel("inner", getPageReference()));
}
});
+
return tabs;
}
}
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestDirectoryPanel.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestDirectoryPanel.java
index 2334409..2c5925d 100644
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestDirectoryPanel.java
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestDirectoryPanel.java
@@ -29,6 +29,7 @@ import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.commons.DirectoryDataProvider;
import org.apache.syncope.client.console.pages.BasePage;
import org.apache.syncope.client.console.panels.UserRequestDirectoryPanel.UserRequestProvider;
+import org.apache.syncope.client.console.panels.UserRequestsPanel.UserRequestSearchEvent;
import org.apache.syncope.client.console.rest.UserRequestRestClient;
import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.DatePropertyColumn;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
@@ -39,10 +40,12 @@ import org.apache.syncope.common.lib.types.FlowableEntitlement;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
+import org.apache.wicket.event.IEvent;
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.ResourceModel;
public class UserRequestDirectoryPanel
@@ -52,8 +55,10 @@ public class UserRequestDirectoryPanel
private static final String PREF_USER_REQUEST_PAGINATOR_ROWS = "userrequest.paginator.rows";
- public UserRequestDirectoryPanel(final String id, final PageReference pageReference) {
- super(id, pageReference, true);
+ private String keyword;
+
+ public UserRequestDirectoryPanel(final String id, final PageReference pageRef) {
+ super(id, pageRef, true);
disableCheckBoxes();
setFooterVisibility(false);
modal.size(Modal.Size.Large);
@@ -119,14 +124,24 @@ public class UserRequestDirectoryPanel
@Override
protected Collection<ActionLink.ActionType> getBatches() {
- return Collections.<ActionLink.ActionType>emptyList();
+ return Collections.emptyList();
}
- protected static class UserRequestProvider extends DirectoryDataProvider<UserRequest> {
+ @Override
+ public void onEvent(final IEvent<?> event) {
+ if (event.getPayload() instanceof UserRequestSearchEvent) {
+ UserRequestSearchEvent payload = UserRequestSearchEvent.class.cast(event.getPayload());
+ keyword = payload.getKeyword();
+
+ updateResultTable(payload.getTarget());
+ } else {
+ super.onEvent(event);
+ }
+ }
- private static final long serialVersionUID = -1392420250782313734L;
+ protected final class UserRequestProvider extends DirectoryDataProvider<UserRequest> {
- private final UserRequestRestClient restClient = new UserRequestRestClient();
+ private static final long serialVersionUID = -1392420250782313734L;
public UserRequestProvider(final int paginatorRows) {
super(paginatorRows);
@@ -137,25 +152,17 @@ public class UserRequestDirectoryPanel
@Override
public Iterator<UserRequest> iterator(final long first, final long count) {
int page = ((int) first / paginatorRows);
- return restClient.getUserRequests((page < 0 ? 0 : page) + 1, paginatorRows, getSort()).iterator();
+ return restClient.listRequests(keyword, (page < 0 ? 0 : page) + 1, paginatorRows, getSort()).iterator();
}
@Override
public long size() {
- return restClient.countUserRequests();
+ return restClient.countRequests(keyword);
}
@Override
public IModel<UserRequest> model(final UserRequest request) {
- return new IModel<UserRequest>() {
-
- private static final long serialVersionUID = -2566070996511906708L;
-
- @Override
- public UserRequest getObject() {
- return request;
- }
- };
+ return Model.of(request);
}
}
}
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 b3f9091..f8535cc 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,8 +18,6 @@
*/
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;
@@ -35,6 +33,7 @@ import org.apache.syncope.client.console.layout.AnyLayoutUtils;
import org.apache.syncope.client.console.rest.UserRequestRestClient;
import org.apache.syncope.client.console.panels.UserRequestFormDirectoryPanel.UserRequestFormProvider;
import org.apache.syncope.client.console.pages.BasePage;
+import org.apache.syncope.client.console.panels.UserRequestsPanel.UserRequestSearchEvent;
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;
@@ -53,6 +52,7 @@ import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
import org.apache.wicket.event.Broadcast;
+import org.apache.wicket.event.IEvent;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
@@ -71,7 +71,7 @@ public class UserRequestFormDirectoryPanel
private final AnyTypeRestClient anyTypeRestClient = new AnyTypeRestClient();
- protected final BaseModal<UserRequestForm> manageFormModal = new BaseModal<UserRequestForm>("outer") {
+ private final BaseModal<UserRequestForm> manageFormModal = new BaseModal<UserRequestForm>("outer") {
private static final long serialVersionUID = 389935548143327858L;
@@ -81,11 +81,12 @@ public class UserRequestFormDirectoryPanel
addSubmitButton();
size(Modal.Size.Large);
}
-
};
- public UserRequestFormDirectoryPanel(final String id, final PageReference pageReference) {
- super(id, pageReference, true);
+ private String keyword;
+
+ public UserRequestFormDirectoryPanel(final String id, final PageReference pageRef) {
+ super(id, pageRef, true);
disableCheckBoxes();
setFooterVisibility(false);
modal.size(Modal.Size.Large);
@@ -164,10 +165,14 @@ public class UserRequestFormDirectoryPanel
@Override
public void onClick(final AjaxRequestTarget target, final UserRequestForm ignore) {
- claimForm(model.getObject().getTaskId());
- SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
+ try {
+ restClient.claimForm(model.getObject().getTaskId());
+ SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
+ target.add(container);
+ } catch (Exception e) {
+ SyncopeConsoleSession.get().onException(e);
+ }
((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
- target.add(container);
}
}, ActionLink.ActionType.CLAIM, FlowableEntitlement.USER_REQUEST_FORM_CLAIM);
@@ -178,10 +183,14 @@ public class UserRequestFormDirectoryPanel
@Override
public void onClick(final AjaxRequestTarget target, final UserRequestForm ignore) {
- unclaimForm(model.getObject().getTaskId());
- SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
- UserRequestFormDirectoryPanel.this.getTogglePanel().close(target);
- target.add(container);
+ try {
+ restClient.unclaimForm(model.getObject().getTaskId());
+ SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
+ UserRequestFormDirectoryPanel.this.getTogglePanel().close(target);
+ target.add(container);
+ } catch (Exception e) {
+ SyncopeConsoleSession.get().onException(e);
+ }
((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
}
@@ -292,11 +301,26 @@ public class UserRequestFormDirectoryPanel
return PREF_USER_REQUEST_FORM_PAGINATOR_ROWS;
}
- protected static class UserRequestFormProvider extends DirectoryDataProvider<UserRequestForm> {
+ @Override
+ protected Collection<ActionLink.ActionType> getBatches() {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public void onEvent(final IEvent<?> event) {
+ if (event.getPayload() instanceof UserRequestSearchEvent) {
+ UserRequestSearchEvent payload = UserRequestSearchEvent.class.cast(event.getPayload());
+ keyword = payload.getKeyword();
+
+ updateResultTable(payload.getTarget());
+ } else {
+ super.onEvent(event);
+ }
+ }
- private static final long serialVersionUID = -2311716167583335852L;
+ protected final class UserRequestFormProvider extends DirectoryDataProvider<UserRequestForm> {
- private final UserRequestRestClient restClient = new UserRequestRestClient();
+ private static final long serialVersionUID = -2311716167583335852L;
public UserRequestFormProvider(final int paginatorRows) {
super(paginatorRows);
@@ -307,47 +331,17 @@ public class UserRequestFormDirectoryPanel
@Override
public Iterator<UserRequestForm> iterator(final long first, final long count) {
int page = ((int) first / paginatorRows);
- return restClient.getForms((page < 0 ? 0 : page) + 1, paginatorRows, getSort()).iterator();
+ return restClient.listForms(keyword, (page < 0 ? 0 : page) + 1, paginatorRows, getSort()).iterator();
}
@Override
public long size() {
- return restClient.countForms();
+ return restClient.countForms(keyword);
}
@Override
public IModel<UserRequestForm> model(final UserRequestForm form) {
- return new IModel<UserRequestForm>() {
-
- private static final long serialVersionUID = -2566070996511906708L;
-
- @Override
- public UserRequestForm getObject() {
- return form;
- }
- };
- }
- }
-
- @Override
- protected Collection<ActionLink.ActionType> getBatches() {
- return Collections.<ActionLink.ActionType>emptyList();
- }
-
- private void claimForm(final String taskId) {
- try {
- restClient.claimForm(taskId);
- } catch (SyncopeClientException e) {
- SyncopeConsoleSession.get().onException(e);
+ return Model.of(form);
}
}
-
- private void unclaimForm(final String taskId) {
- try {
- restClient.unclaimForm(taskId);
- } catch (SyncopeClientException e) {
- SyncopeConsoleSession.get().onException(e);
- }
- }
-
}
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestsPanel.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestsPanel.java
new file mode 100644
index 0000000..563319f
--- /dev/null
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestsPanel.java
@@ -0,0 +1,88 @@
+/*
+ * 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.panels;
+
+import java.io.Serializable;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.event.Broadcast;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.Model;
+
+public class UserRequestsPanel extends Panel {
+
+ private static final long serialVersionUID = -896040867024301443L;
+
+ public UserRequestsPanel(final String id, final DirectoryPanel<?, ?, ?, ?> directoryPanel) {
+ super(id);
+
+ Model<String> keywordModel = new Model<>(StringUtils.EMPTY);
+
+ WebMarkupContainer searchBoxContainer = new WebMarkupContainer("searchBox");
+ add(searchBoxContainer);
+
+ Form<?> form = new Form<>("form");
+ searchBoxContainer.add(form);
+
+ AjaxTextFieldPanel filter = new AjaxTextFieldPanel("filter", "filter", keywordModel, true);
+ form.add(filter.setPlaceholder("username / key").hideLabel().setOutputMarkupId(true));
+
+ AjaxButton search = new AjaxButton("search") {
+
+ private static final long serialVersionUID = 8390605330558248736L;
+
+ @Override
+ protected void onSubmit(final AjaxRequestTarget target) {
+ send(UserRequestsPanel.this, Broadcast.DEPTH,
+ new UserRequestSearchEvent(target, keywordModel.getObject()));
+ }
+ };
+ search.setOutputMarkupId(true);
+ form.add(search);
+ form.setDefaultButton(search);
+
+ add(directoryPanel);
+ }
+
+ public static class UserRequestSearchEvent implements Serializable {
+
+ private static final long serialVersionUID = 5063826346823013424L;
+
+ private final transient AjaxRequestTarget target;
+
+ private final String keyword;
+
+ UserRequestSearchEvent(final AjaxRequestTarget target, final String keyword) {
+ this.target = target;
+ this.keyword = keyword;
+ }
+
+ public AjaxRequestTarget getTarget() {
+ return target;
+ }
+
+ public String getKeyword() {
+ return keyword;
+ }
+ }
+}
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/rest/UserRequestRestClient.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/rest/UserRequestRestClient.java
index 39c45c5..913c4db 100644
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/rest/UserRequestRestClient.java
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/rest/UserRequestRestClient.java
@@ -18,12 +18,13 @@
*/
package org.apache.syncope.client.console.rest;
+import java.util.Collections;
import java.util.List;
import java.util.Optional;
+import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.to.PagedResult;
import org.apache.syncope.common.lib.to.UserRequest;
import org.apache.syncope.common.lib.to.UserRequestForm;
-import org.apache.syncope.common.rest.api.beans.UserRequestFormQuery;
import org.apache.syncope.common.rest.api.beans.UserRequestQuery;
import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
import org.apache.syncope.common.rest.api.service.UserRequestService;
@@ -32,37 +33,59 @@ public class UserRequestRestClient extends BaseRestClient {
private static final long serialVersionUID = -4785231164900813921L;
- public int countUserRequests() {
- return getService(UserRequestService.class).
- list(new UserRequestQuery.Builder().page(1).size(0).build()).
- getTotalCount();
+ public int countRequests(final String keyword) {
+ try {
+ return getService(UserRequestService.class).
+ listRequests(new UserRequestQuery.Builder().user(keyword).page(1).size(0).build()).
+ getTotalCount();
+ } catch (Exception e) {
+ return 0;
+ }
}
- public List<UserRequest> getUserRequests(final int page, final int size, final SortParam<String> sort) {
- return getService(UserRequestService.class).
- list(new UserRequestQuery.Builder().page(page).size(size).orderBy(toOrderBy(sort)).build()).
- getResult();
+ public List<UserRequest> listRequests(
+ final String keyword, final int page, final int size, final SortParam<String> sort) {
+
+ try {
+ return getService(UserRequestService.class).listRequests(
+ new UserRequestQuery.Builder().user(keyword).page(page).size(size).
+ orderBy(toOrderBy(sort)).build()).
+ getResult();
+ } catch (SyncopeClientException e) {
+ return Collections.emptyList();
+ }
}
public void cancelRequest(final String executionId, final String reason) {
- getService(UserRequestService.class).cancel(executionId, reason);
+ getService(UserRequestService.class).cancelRequest(executionId, reason);
}
- public int countForms() {
- return getService(UserRequestService.class).
- getForms(new UserRequestFormQuery.Builder().page(1).size(0).build()).
- getTotalCount();
+ public int countForms(final String keyword) {
+ try {
+ return getService(UserRequestService.class).
+ listForms(new UserRequestQuery.Builder().user(keyword).page(1).size(0).build()).
+ getTotalCount();
+ } catch (SyncopeClientException e) {
+ return 0;
+ }
}
- public List<UserRequestForm> getForms(final int page, final int size, final SortParam<String> sort) {
- return getService(UserRequestService.class).
- getForms(new UserRequestFormQuery.Builder().page(page).size(size).orderBy(toOrderBy(sort)).build()).
- getResult();
+ public List<UserRequestForm> listForms(
+ final String keyword, final int page, final int size, final SortParam<String> sort) {
+
+ try {
+ return getService(UserRequestService.class).listForms(
+ new UserRequestQuery.Builder().user(keyword).page(page).size(size).
+ orderBy(toOrderBy(sort)).build()).
+ getResult();
+ } catch (SyncopeClientException e) {
+ return Collections.emptyList();
+ }
}
public Optional<UserRequestForm> getForm(final String userKey) {
PagedResult<UserRequestForm> forms = getService(UserRequestService.class).
- getForms(new UserRequestFormQuery.Builder().user(userKey).page(1).size(1).build());
+ listForms(new UserRequestQuery.Builder().user(userKey).page(1).size(1).build());
UserRequestForm form = forms.getResult().isEmpty()
? null
: forms.getResult().get(0);
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.java
index b445dd9..7e236ef 100644
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.java
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.java
@@ -88,7 +88,7 @@ public class UserRequestFormsWidget extends ExtAlertWidget<UserRequestForm> {
@Override
protected int getLatestAlertsSize() {
return SyncopeConsoleSession.get().owns(FlowableEntitlement.USER_REQUEST_FORM_LIST)
- ? restClient.countForms()
+ ? restClient.countForms(null)
: 0;
}
@@ -102,9 +102,9 @@ public class UserRequestFormsWidget extends ExtAlertWidget<UserRequestForm> {
public List<UserRequestForm> getObject() {
List<UserRequestForm> updatedForms;
if (SyncopeConsoleSession.get().owns(FlowableEntitlement.USER_REQUEST_FORM_LIST)) {
- updatedForms = restClient.getForms(1, MAX_SIZE, new SortParam<>("createTime", true));
+ updatedForms = restClient.listForms(null, 1, MAX_SIZE, new SortParam<>("createTime", true));
} else {
- updatedForms = Collections.<UserRequestForm>emptyList();
+ updatedForms = Collections.emptyList();
}
return updatedForms;
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestsPanel.html b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestsPanel.html
new file mode 100644
index 0000000..ec0a3f4
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestsPanel.html
@@ -0,0 +1,36 @@
+<!--
+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.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
+ <wicket:panel>
+ <div wicket:id="searchBox">
+ <form wicket:id="form">
+ <div class="input-group margin-bottom">
+ <span wicket:id="filter">[FILTER]</span>
+ <span class="input-group-btn">
+ <button type="button" class="btn btn-default btn-flat" wicket:id="search">
+ <span class="glyphicon glyphicon-search" aria-hidden="true"></span>
+ </button>
+ </span>
+ </div>
+ </form>
+ </div>
+
+ <span wicket:id="inner"/>
+ </wicket:panel>
+</html>
diff --git a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserRequestCancelResource.java b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserRequestCancelResource.java
index 3e1116b..88d9f45 100644
--- a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserRequestCancelResource.java
+++ b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserRequestCancelResource.java
@@ -66,8 +66,8 @@ public class UserRequestCancelResource extends BaseResource {
throw new IllegalArgumentException("Empty executionId, please provide a value");
}
- SyncopeEnduserSession.get().getService(UserRequestService.class).cancel(executionId.toString(),
- reason.toString());
+ SyncopeEnduserSession.get().getService(UserRequestService.class).
+ cancelRequest(executionId.toString(), reason.toString());
final String outcomeMessage = String.format(
"User Request with execution id [%s] successfully canceled for User [%s]", executionId.
diff --git a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserRequestsFormsResource.java b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserRequestsFormsResource.java
index c51027b..a4a1ea0 100644
--- a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserRequestsFormsResource.java
+++ b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserRequestsFormsResource.java
@@ -32,7 +32,7 @@ import org.apache.syncope.client.enduser.annotations.Resource;
import org.apache.syncope.common.lib.to.PagedResult;
import org.apache.syncope.common.lib.to.UserRequestForm;
import org.apache.syncope.common.lib.types.UserRequestFormPropertyType;
-import org.apache.syncope.common.rest.api.beans.UserRequestFormQuery;
+import org.apache.syncope.common.rest.api.beans.UserRequestQuery;
import org.apache.syncope.common.rest.api.service.UserRequestService;
import org.apache.wicket.request.IRequestParameters;
import org.apache.wicket.request.resource.AbstractResource;
@@ -66,17 +66,17 @@ public class UserRequestsFormsResource extends BaseResource {
StringValue size = requestParameters.getParameterValue("size");
LOG.debug("List available Flowable User Requests Forms by user [{}]", username);
final PagedResult<UserRequestForm> userRequestForms = SyncopeEnduserSession.get().
- getService(UserRequestService.class).getForms(
- new UserRequestFormQuery.Builder()
+ getService(UserRequestService.class).listForms(
+ new UserRequestQuery.Builder()
.user(username.isEmpty()
? SyncopeEnduserSession.get().getSelfTO().getUsername()
: username.toString())
.page(page.isEmpty()
? 1
- : Integer.parseInt(page.toString()))
+ : page.toInt())
.size(size.isEmpty()
? 10
- : Integer.parseInt(size.toString())).build());
+ : size.toInt()).build());
// Date -> millis conversion for Date properties of the form
userRequestForms.getResult().stream().forEach(form
@@ -117,8 +117,8 @@ public class UserRequestsFormsResource extends BaseResource {
&& StringUtils.isNotBlank(prop.getValue()))
.forEach(prop -> {
try {
- prop.setValue(FastDateFormat.getInstance(prop.getDatePattern()).format(Long.valueOf(
- prop.getValue())));
+ prop.setValue(FastDateFormat.getInstance(prop.getDatePattern()).
+ format(Long.valueOf(prop.getValue())));
} catch (NumberFormatException e) {
LOG.error("Unable to format date", e);
}
diff --git a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserRequestsResource.java b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserRequestsResource.java
index ab6f054..197ee98 100644
--- a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserRequestsResource.java
+++ b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserRequestsResource.java
@@ -66,8 +66,8 @@ public class UserRequestsResource extends BaseResource {
if (executionId.isEmpty()) {
throw new IllegalArgumentException("Empty executionId, please provide a value");
}
- SyncopeEnduserSession.get().getService(UserRequestService.class).cancel(executionId.toString(),
- reason.toString());
+ SyncopeEnduserSession.get().getService(UserRequestService.class).
+ cancelRequest(executionId.toString(), reason.toString());
response.setStatusCode(Response.Status.NO_CONTENT.getStatusCode());
response.setWriteCallback(new AbstractResource.WriteCallback() {
@@ -126,16 +126,14 @@ public class UserRequestsResource extends BaseResource {
private static PagedResult<UserRequest> list(final StringValue page, final StringValue size)
throws NumberFormatException {
return SyncopeEnduserSession.get().getService(UserRequestService.class)
- .list(new UserRequestQuery.Builder()
+ .listRequests(new UserRequestQuery.Builder()
.user(SyncopeEnduserSession.get().getSelfTO().getUsername())
.page(page.isEmpty()
? 1
- : Integer.parseInt(
- page.toString()))
+ : page.toInt())
.size(size.isEmpty()
? 10
- : Integer.parseInt(
- size.toString())).build());
+ : size.toInt()).build());
}
private PagedResult<UserRequestWrapper> fillWithForms(final PagedResult<UserRequest> reqsResult) {
diff --git a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserRequestsStartResource.java b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserRequestsStartResource.java
index c9c57b6..725bbde 100644
--- a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserRequestsStartResource.java
+++ b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserRequestsStartResource.java
@@ -57,7 +57,8 @@ public class UserRequestsStartResource extends BaseResource {
if (bpmnProcess.isEmpty()) {
throw new IllegalArgumentException("Empty bpmnProcess, please provide a value");
}
- SyncopeEnduserSession.get().getService(UserRequestService.class).start(bpmnProcess.toString(), null, null);
+ SyncopeEnduserSession.get().getService(UserRequestService.class).
+ startRequest(bpmnProcess.toString(), null, null);
response.setStatusCode(Response.Status.NO_CONTENT.getStatusCode());
response.setWriteCallback(new AbstractResource.WriteCallback() {
diff --git a/ext/flowable/logic/src/main/java/org/apache/syncope/core/logic/UserRequestLogic.java b/ext/flowable/logic/src/main/java/org/apache/syncope/core/logic/UserRequestLogic.java
index da5c212..28fd0fa 100644
--- a/ext/flowable/logic/src/main/java/org/apache/syncope/core/logic/UserRequestLogic.java
+++ b/ext/flowable/logic/src/main/java/org/apache/syncope/core/logic/UserRequestLogic.java
@@ -73,7 +73,7 @@ public class UserRequestLogic extends AbstractTransactionalLogic<EntityTO> {
@PreAuthorize("isAuthenticated()")
@Transactional(readOnly = true)
- public Pair<Integer, List<UserRequest>> list(
+ public Pair<Integer, List<UserRequest>> listRequests(
final String userKey,
final int page,
final int size,
@@ -109,12 +109,12 @@ public class UserRequestLogic extends AbstractTransactionalLogic<EntityTO> {
}
@PreAuthorize("isAuthenticated()")
- public UserRequest start(final String bpmnProcess, final WorkflowTaskExecInput inputVariables) {
+ public UserRequest startRequest(final String bpmnProcess, final WorkflowTaskExecInput inputVariables) {
return doStart(bpmnProcess, userDAO.findByUsername(AuthContextUtils.getUsername()), inputVariables);
}
@PreAuthorize("hasRole('" + FlowableEntitlement.USER_REQUEST_START + "')")
- public UserRequest start(
+ public UserRequest startRequest(
final String bpmnProcess,
final String userKey,
final WorkflowTaskExecInput inputVariables) {
@@ -133,7 +133,7 @@ public class UserRequestLogic extends AbstractTransactionalLogic<EntityTO> {
}
@PreAuthorize("isAuthenticated()")
- public void cancel(final String executionId, final String reason) {
+ public void cancelRequest(final String executionId, final String reason) {
Pair<ProcessInstance, String> parsed = userRequestHandler.parse(executionId);
securityChecks(userDAO.find(parsed.getRight()).getUsername(),
@@ -187,11 +187,12 @@ public class UserRequestLogic extends AbstractTransactionalLogic<EntityTO> {
@PreAuthorize("isAuthenticated()")
@Transactional(readOnly = true)
- public Pair<Integer, List<UserRequestForm>> getForms(
+ public Pair<Integer, List<UserRequestForm>> listForms(
final String userKey,
final int page,
final int size,
final List<OrderByClause> orderByClauses) {
+
evaluateKey(userKey);
return userRequestHandler.getForms(userKey, page, size, orderByClauses);
diff --git a/ext/flowable/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/UserRequestFormQuery.java b/ext/flowable/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/UserRequestFormQuery.java
deleted file mode 100644
index f5a507b..0000000
--- a/ext/flowable/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/UserRequestFormQuery.java
+++ /dev/null
@@ -1,55 +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.common.rest.api.beans;
-
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.media.Schema;
-import javax.ws.rs.QueryParam;
-import org.apache.syncope.common.rest.api.service.JAXRSService;
-
-public class UserRequestFormQuery extends AbstractQuery {
-
- private static final long serialVersionUID = -4762457303770028554L;
-
- public static class Builder extends AbstractQuery.Builder<UserRequestFormQuery, Builder> {
-
- @Override
- protected UserRequestFormQuery newInstance() {
- return new UserRequestFormQuery();
- }
-
- public Builder user(final String user) {
- getInstance().setUser(user);
- return this;
- }
- }
-
- private String user;
-
- @Parameter(name = JAXRSService.PARAM_USER, description = "user to match either by key or username", schema =
- @Schema(implementation = String.class, example = "50592942-73ec-44c4-a377-e859524245e4"))
- public String getUser() {
- return user;
- }
-
- @QueryParam(JAXRSService.PARAM_USER)
- public void setUser(final String user) {
- this.user = user;
- }
-}
diff --git a/ext/flowable/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserRequestService.java b/ext/flowable/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserRequestService.java
index d9bcd53..812e55c 100644
--- a/ext/flowable/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserRequestService.java
+++ b/ext/flowable/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserRequestService.java
@@ -40,7 +40,6 @@ import org.apache.syncope.common.lib.to.UserTO;
import org.apache.syncope.common.lib.to.UserRequestForm;
import org.apache.syncope.common.lib.to.WorkflowTaskExecInput;
import org.apache.syncope.common.rest.api.RESTHeaders;
-import org.apache.syncope.common.rest.api.beans.UserRequestFormQuery;
import org.apache.syncope.common.rest.api.beans.UserRequestQuery;
/**
@@ -61,7 +60,7 @@ public interface UserRequestService extends JAXRSService {
*/
@GET
@Produces({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
- PagedResult<UserRequest> list(@BeanParam UserRequestQuery query);
+ PagedResult<UserRequest> listRequests(@BeanParam UserRequestQuery query);
/**
* Starts a new request for the given BPMN Process and user (if provided) or requesting user (if not provided).
@@ -74,7 +73,7 @@ public interface UserRequestService extends JAXRSService {
@POST
@Path("start/{bpmnProcess}")
@Produces({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
- UserRequest start(
+ UserRequest startRequest(
@NotNull @PathParam("bpmnProcess") String bpmnProcess,
@QueryParam(JAXRSService.PARAM_USER) String user,
WorkflowTaskExecInput inputVariables);
@@ -90,7 +89,7 @@ public interface UserRequestService extends JAXRSService {
@DELETE
@Path("{executionId}")
@Produces({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
- void cancel(
+ void cancelRequest(
@NotNull @PathParam("executionId") String executionId,
@QueryParam("reason") String reason);
@@ -117,7 +116,7 @@ public interface UserRequestService extends JAXRSService {
@GET
@Path("forms")
@Produces({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
- PagedResult<UserRequestForm> getForms(@BeanParam UserRequestFormQuery query);
+ PagedResult<UserRequestForm> listForms(@BeanParam UserRequestQuery query);
/**
* Requests to manage the form for the given task id.
diff --git a/ext/flowable/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/UserRequestServiceImpl.java b/ext/flowable/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/UserRequestServiceImpl.java
index 4f939c4..23ff8c5 100644
--- a/ext/flowable/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/UserRequestServiceImpl.java
+++ b/ext/flowable/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/UserRequestServiceImpl.java
@@ -19,13 +19,13 @@
package org.apache.syncope.core.rest.cxf.service;
import java.util.List;
+import java.util.Optional;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.to.PagedResult;
import org.apache.syncope.common.lib.to.UserRequest;
import org.apache.syncope.common.lib.to.UserTO;
import org.apache.syncope.common.lib.to.UserRequestForm;
import org.apache.syncope.common.lib.to.WorkflowTaskExecInput;
-import org.apache.syncope.common.rest.api.beans.UserRequestFormQuery;
import org.apache.syncope.common.rest.api.beans.UserRequestQuery;
import org.apache.syncope.core.logic.UserRequestLogic;
import org.apache.syncope.common.rest.api.service.UserRequestService;
@@ -43,26 +43,28 @@ public class UserRequestServiceImpl extends AbstractServiceImpl implements UserR
private UserDAO userDAO;
@Override
- public PagedResult<UserRequest> list(final UserRequestQuery query) {
+ public PagedResult<UserRequest> listRequests(final UserRequestQuery query) {
if (query.getUser() != null) {
- query.setUser(getActualKey(userDAO, query.getUser()));
+ query.setUser(Optional.ofNullable(getActualKey(userDAO, query.getUser())).orElse(query.getUser()));
}
- Pair<Integer, List<UserRequest>> result = logic.list(
+ Pair<Integer, List<UserRequest>> result = logic.listRequests(
query.getUser(), query.getPage(), query.getSize(), getOrderByClauses(query.getOrderBy()));
return buildPagedResult(result.getRight(), query.getPage(), query.getSize(), result.getLeft());
}
@Override
- public UserRequest start(final String bpmnProcess, final String user, final WorkflowTaskExecInput inputVariables) {
+ public UserRequest startRequest(
+ final String bpmnProcess, final String user, final WorkflowTaskExecInput inputVariables) {
+
return user == null
- ? logic.start(bpmnProcess, inputVariables)
- : logic.start(bpmnProcess, getActualKey(userDAO, user), inputVariables);
+ ? logic.startRequest(bpmnProcess, inputVariables)
+ : logic.startRequest(bpmnProcess, getActualKey(userDAO, user), inputVariables);
}
@Override
- public void cancel(final String executionId, final String reason) {
- logic.cancel(executionId, reason);
+ public void cancelRequest(final String executionId, final String reason) {
+ logic.cancelRequest(executionId, reason);
}
@Override
@@ -81,12 +83,12 @@ public class UserRequestServiceImpl extends AbstractServiceImpl implements UserR
}
@Override
- public PagedResult<UserRequestForm> getForms(final UserRequestFormQuery query) {
+ public PagedResult<UserRequestForm> listForms(final UserRequestQuery query) {
if (query.getUser() != null) {
- query.setUser(getActualKey(userDAO, query.getUser()));
+ query.setUser(Optional.ofNullable(getActualKey(userDAO, query.getUser())).orElse(query.getUser()));
}
- Pair<Integer, List<UserRequestForm>> result = logic.getForms(
+ Pair<Integer, List<UserRequestForm>> result = logic.listForms(
query.getUser(), query.getPage(), query.getSize(), getOrderByClauses(query.getOrderBy()));
return buildPagedResult(result.getRight(), query.getPage(), query.getSize(), result.getLeft());
}
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java
index 0de6530..69b5052 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java
@@ -68,7 +68,7 @@ import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.syncope.common.lib.types.StatusPatchType;
import org.apache.syncope.common.rest.api.RESTHeaders;
import org.apache.syncope.common.rest.api.beans.AnyQuery;
-import org.apache.syncope.common.rest.api.beans.UserRequestFormQuery;
+import org.apache.syncope.common.rest.api.beans.UserRequestQuery;
import org.apache.syncope.common.rest.api.service.AnyObjectService;
import org.apache.syncope.common.rest.api.service.SchemaService;
import org.apache.syncope.common.rest.api.service.UserService;
@@ -499,8 +499,8 @@ public class AuthenticationITCase extends AbstractITCase {
}
// 3. approve user
- UserRequestForm form = userRequestService.getForms(
- new UserRequestFormQuery.Builder().user(userTO.getKey()).build()).getResult().get(0);
+ UserRequestForm form = userRequestService.listForms(
+ new UserRequestQuery.Builder().user(userTO.getKey()).build()).getResult().get(0);
form = userRequestService.claimForm(form.getTaskId());
form.getProperty("approveCreate").get().setValue(Boolean.TRUE.toString());
userTO = userRequestService.submitForm(form);
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserRequestITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserRequestITCase.java
index e667020..9bdabe1 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserRequestITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserRequestITCase.java
@@ -40,7 +40,6 @@ import org.apache.syncope.common.lib.to.UserRequest;
import org.apache.syncope.common.lib.to.UserTO;
import org.apache.syncope.common.lib.to.WorkflowTaskExecInput;
import org.apache.syncope.common.lib.types.ClientExceptionType;
-import org.apache.syncope.common.rest.api.beans.UserRequestFormQuery;
import org.apache.syncope.common.rest.api.beans.UserRequestQuery;
import org.apache.syncope.common.rest.api.service.UserRequestService;
import org.apache.syncope.fit.AbstractITCase;
@@ -78,7 +77,7 @@ public class UserRequestITCase extends AbstractITCase {
assertFalse(user.getMembership("ebf97068-aa4b-4a85-9f01-680e8c4cf227").isPresent());
// start request
- UserRequest req = userRequestService.start("directorGroupRequest", user.getKey(), null);
+ UserRequest req = userRequestService.startRequest("directorGroupRequest", user.getKey(), null);
assertNotNull(req);
assertEquals("directorGroupRequest", req.getBpmnProcess());
assertNotNull(req.getExecutionId());
@@ -87,59 +86,59 @@ public class UserRequestITCase extends AbstractITCase {
// check that user can see the ongoing request
SyncopeClient client = clientFactory.create(user.getUsername(), "password123");
PagedResult<UserRequest> requests = client.getService(UserRequestService.class).
- list(new UserRequestQuery.Builder().user(user.getKey()).build());
+ listRequests(new UserRequestQuery.Builder().user(user.getKey()).build());
assertEquals(1, requests.getTotalCount());
assertEquals("directorGroupRequest", requests.getResult().get(0).getBpmnProcess());
// 1st approval -> reject
- UserRequestForm form = userRequestService.getForms(
- new UserRequestFormQuery.Builder().user(user.getKey()).build()).getResult().get(0);
+ UserRequestForm form = userRequestService.listForms(
+ new UserRequestQuery.Builder().user(user.getKey()).build()).getResult().get(0);
form = userRequestService.claimForm(form.getTaskId());
form.getProperty("firstLevelApprove").get().setValue(Boolean.FALSE.toString());
userRequestService.submitForm(form);
// no more forms, group not assigned
- assertTrue(userRequestService.getForms(
- new UserRequestFormQuery.Builder().user(user.getKey()).build()).getResult().isEmpty());
+ assertTrue(userRequestService.listForms(
+ new UserRequestQuery.Builder().user(user.getKey()).build()).getResult().isEmpty());
assertFalse(userService.read(user.getKey()).getMembership("ebf97068-aa4b-4a85-9f01-680e8c4cf227").isPresent());
// start request again
- req = userRequestService.start("directorGroupRequest", user.getKey(), null);
+ req = userRequestService.startRequest("directorGroupRequest", user.getKey(), null);
assertNotNull(req);
// 1st approval -> accept
- form = userRequestService.getForms(
- new UserRequestFormQuery.Builder().user(user.getKey()).build()).getResult().get(0);
+ form = userRequestService.listForms(
+ new UserRequestQuery.Builder().user(user.getKey()).build()).getResult().get(0);
form = userRequestService.claimForm(form.getTaskId());
form.getProperty("firstLevelApprove").get().setValue(Boolean.TRUE.toString());
userRequestService.submitForm(form);
// 2nd approval -> reject
- form = userRequestService.getForms(
- new UserRequestFormQuery.Builder().user(user.getKey()).build()).getResult().get(0);
+ form = userRequestService.listForms(
+ new UserRequestQuery.Builder().user(user.getKey()).build()).getResult().get(0);
form = userRequestService.claimForm(form.getTaskId());
form.getProperty("secondLevelApprove").get().setValue(Boolean.FALSE.toString());
user = userRequestService.submitForm(form);
// no more forms, group not assigned
- assertTrue(userRequestService.getForms(
- new UserRequestFormQuery.Builder().user(user.getKey()).build()).getResult().isEmpty());
+ assertTrue(userRequestService.listForms(
+ new UserRequestQuery.Builder().user(user.getKey()).build()).getResult().isEmpty());
assertFalse(userService.read(user.getKey()).getMembership("ebf97068-aa4b-4a85-9f01-680e8c4cf227").isPresent());
// start request again
- req = userRequestService.start("directorGroupRequest", user.getKey(), null);
+ req = userRequestService.startRequest("directorGroupRequest", user.getKey(), null);
assertNotNull(req);
// 1st approval -> accept
- form = userRequestService.getForms(
- new UserRequestFormQuery.Builder().user(user.getKey()).build()).getResult().get(0);
+ form = userRequestService.listForms(
+ new UserRequestQuery.Builder().user(user.getKey()).build()).getResult().get(0);
form = userRequestService.claimForm(form.getTaskId());
form.getProperty("firstLevelApprove").get().setValue(Boolean.TRUE.toString());
userRequestService.submitForm(form);
// 2nd approval -> accept
- form = userRequestService.getForms(
- new UserRequestFormQuery.Builder().user(user.getKey()).build()).getResult().get(0);
+ form = userRequestService.listForms(
+ new UserRequestQuery.Builder().user(user.getKey()).build()).getResult().get(0);
form = userRequestService.claimForm(form.getTaskId());
form.getProperty("secondLevelApprove").get().setValue(Boolean.TRUE.toString());
user = userRequestService.submitForm(form);
@@ -152,7 +151,7 @@ public class UserRequestITCase extends AbstractITCase {
@Test
public void cancel() {
PagedResult<UserRequestForm> forms =
- userRequestService.getForms(new UserRequestFormQuery.Builder().build());
+ userRequestService.listForms(new UserRequestQuery.Builder().build());
int preForms = forms.getTotalCount();
UserTO user = createUser(UserITCase.getUniqueSampleTO("twoLevelsApproval@tirasa.net")).getEntity();
@@ -160,31 +159,31 @@ public class UserRequestITCase extends AbstractITCase {
assertFalse(user.getMembership("ebf97068-aa4b-4a85-9f01-680e8c4cf227").isPresent());
// start request
- UserRequest req = userRequestService.start("directorGroupRequest", user.getKey(), null);
+ UserRequest req = userRequestService.startRequest("directorGroupRequest", user.getKey(), null);
assertNotNull(req);
// check that form was generated
- forms = userRequestService.getForms(new UserRequestFormQuery.Builder().build());
+ forms = userRequestService.listForms(new UserRequestQuery.Builder().build());
assertEquals(preForms + 1, forms.getTotalCount());
- assertEquals(1, userRequestService.getForms(
- new UserRequestFormQuery.Builder().user(user.getKey()).build()).getResult().size());
+ assertEquals(1, userRequestService.listForms(
+ new UserRequestQuery.Builder().user(user.getKey()).build()).getResult().size());
// cancel request
- userRequestService.cancel(req.getExecutionId(), "nothing in particular");
+ userRequestService.cancelRequest(req.getExecutionId(), "nothing in particular");
// check that form was removed
- forms = userRequestService.getForms(new UserRequestFormQuery.Builder().build());
+ forms = userRequestService.listForms(new UserRequestQuery.Builder().build());
assertEquals(preForms, forms.getTotalCount());
- assertTrue(userRequestService.getForms(
- new UserRequestFormQuery.Builder().user(user.getKey()).build()).getResult().isEmpty());
+ assertTrue(userRequestService.listForms(
+ new UserRequestQuery.Builder().user(user.getKey()).build()).getResult().isEmpty());
}
@Test
public void userSelection() {
PagedResult<UserRequestForm> forms =
- userRequestService.getForms(new UserRequestFormQuery.Builder().build());
+ userRequestService.listForms(new UserRequestQuery.Builder().build());
int preForms = forms.getTotalCount();
UserTO user = createUser(UserITCase.getUniqueSampleTO("userSelection@tirasa.net")).getEntity();
@@ -195,16 +194,16 @@ public class UserRequestITCase extends AbstractITCase {
SyncopeClient client = clientFactory.create(user.getUsername(), "password123");
// start request as user
- UserRequest req = client.getService(UserRequestService.class).start("assignPrinterRequest", null, null);
+ UserRequest req = client.getService(UserRequestService.class).startRequest("assignPrinterRequest", null, null);
assertNotNull(req);
// check (as admin) that a new form is available
- forms = userRequestService.getForms(new UserRequestFormQuery.Builder().build());
+ forms = userRequestService.listForms(new UserRequestQuery.Builder().build());
assertEquals(preForms + 1, forms.getTotalCount());
// get (as user) the form, claim and submit
PagedResult<UserRequestForm> userForms = client.getService(UserRequestService.class).
- getForms(new UserRequestFormQuery.Builder().user(user.getKey()).build());
+ listForms(new UserRequestQuery.Builder().user(user.getKey()).build());
assertEquals(1, userForms.getTotalCount());
UserRequestForm form = userForms.getResult().get(0);
@@ -219,19 +218,19 @@ public class UserRequestITCase extends AbstractITCase {
client.getService(UserRequestService.class).submitForm(form);
- userForms = client.getService(UserRequestService.class).getForms(
- new UserRequestFormQuery.Builder().user(user.getKey()).build());
+ userForms = client.getService(UserRequestService.class).listForms(
+ new UserRequestQuery.Builder().user(user.getKey()).build());
assertEquals(0, userForms.getTotalCount());
// check that user can see the ongoing request
PagedResult<UserRequest> requests = client.getService(UserRequestService.class).
- list(new UserRequestQuery.Builder().user(user.getKey()).build());
+ listRequests(new UserRequestQuery.Builder().user(user.getKey()).build());
assertEquals(1, requests.getTotalCount());
assertEquals("assignPrinterRequest", requests.getResult().get(0).getBpmnProcess());
// get (as admin) the new form, claim and submit
- form = userRequestService.getForms(
- new UserRequestFormQuery.Builder().user(user.getKey()).build()).getResult().get(0);
+ form = userRequestService.listForms(
+ new UserRequestQuery.Builder().user(user.getKey()).build()).getResult().get(0);
assertEquals("assignPrinterRequest", form.getBpmnProcess());
form = userRequestService.claimForm(form.getTaskId());
@@ -241,11 +240,11 @@ public class UserRequestITCase extends AbstractITCase {
userRequestService.submitForm(form);
// no more forms available
- forms = userRequestService.getForms(new UserRequestFormQuery.Builder().build());
+ forms = userRequestService.listForms(new UserRequestQuery.Builder().build());
assertEquals(preForms, forms.getTotalCount());
assertTrue(client.getService(UserRequestService.class).
- list(new UserRequestQuery.Builder().user(user.getKey()).build()).getResult().isEmpty());
+ listRequests(new UserRequestQuery.Builder().user(user.getKey()).build()).getResult().isEmpty());
// check that relationship was made effective by approval
relationships = userService.read(user.getKey()).getRelationships();
@@ -257,7 +256,7 @@ public class UserRequestITCase extends AbstractITCase {
@Test
public void addVariablesToUserRequestAtStart() {
PagedResult<UserRequestForm> forms =
- userRequestService.getForms(new UserRequestFormQuery.Builder().build());
+ userRequestService.listForms(new UserRequestQuery.Builder().build());
int preForms = forms.getTotalCount();
UserTO user = createUser(UserITCase.getUniqueSampleTO("addVariables@tirasa.net")).getEntity();
@@ -269,16 +268,17 @@ public class UserRequestITCase extends AbstractITCase {
testInput.getVariables().put("providedVariable", "test");
// start request as user
- UserRequest req = client.getService(UserRequestService.class).start("verifyAddedVariables", null, testInput);
+ UserRequest req = client.getService(UserRequestService.class).
+ startRequest("verifyAddedVariables", null, testInput);
assertNotNull(req);
// check that a new form is available
- forms = userRequestService.getForms(new UserRequestFormQuery.Builder().build());
+ forms = userRequestService.listForms(new UserRequestQuery.Builder().build());
assertEquals(preForms + 1, forms.getTotalCount());
// get the form and verify the property value
- PagedResult<UserRequestForm> userForms = userRequestService.
- getForms(new UserRequestFormQuery.Builder().user(user.getKey()).build());
+ PagedResult<UserRequestForm> userForms = userRequestService.listForms(
+ new UserRequestQuery.Builder().user(user.getKey()).build());
assertEquals(1, userForms.getTotalCount());
UserRequestForm form = userForms.getResult().get(0);
@@ -286,14 +286,14 @@ public class UserRequestITCase extends AbstractITCase {
assertEquals(form.getProperty("providedVariable").get().getValue(), "test");
// cancel request
- userRequestService.cancel(req.getExecutionId(), "nothing in particular");
+ userRequestService.cancelRequest(req.getExecutionId(), "nothing in particular");
// no more forms available
- forms = userRequestService.getForms(new UserRequestFormQuery.Builder().build());
+ forms = userRequestService.listForms(new UserRequestQuery.Builder().build());
assertEquals(preForms, forms.getTotalCount());
assertTrue(client.getService(UserRequestService.class).
- list(new UserRequestQuery.Builder().user(user.getKey()).build()).getResult().isEmpty());
+ listRequests(new UserRequestQuery.Builder().user(user.getKey()).build()).getResult().isEmpty());
}
@Test
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java
index 781875c..7e9a1e0 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java
@@ -58,7 +58,7 @@ import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.ClientExceptionType;
import org.apache.syncope.common.lib.types.PatchOperation;
import org.apache.syncope.common.rest.api.beans.AnyQuery;
-import org.apache.syncope.common.rest.api.beans.UserRequestFormQuery;
+import org.apache.syncope.common.rest.api.beans.UserRequestQuery;
import org.apache.syncope.common.rest.api.service.AccessTokenService;
import org.apache.syncope.common.rest.api.service.UserRequestService;
import org.apache.syncope.common.rest.api.service.UserSelfService;
@@ -134,8 +134,8 @@ public class UserSelfITCase extends AbstractITCase {
}
// 2. now approve and verify that propagation has happened
- UserRequestForm form = userRequestService.getForms(
- new UserRequestFormQuery.Builder().user(userTO.getKey()).build()).getResult().get(0);
+ UserRequestForm form = userRequestService.listForms(
+ new UserRequestQuery.Builder().user(userTO.getKey()).build()).getResult().get(0);
form = userRequestService.claimForm(form.getTaskId());
form.getProperty("approveCreate").get().setValue(Boolean.TRUE.toString());
userTO = userRequestService.submitForm(form);
@@ -171,8 +171,8 @@ public class UserSelfITCase extends AbstractITCase {
}
// 2. unclaim and verify that propagation has NOT happened
- UserRequestForm form = userRequestService.getForms(
- new UserRequestFormQuery.Builder().user(userTO.getKey()).build()).getResult().get(0);
+ UserRequestForm form = userRequestService.listForms(
+ new UserRequestQuery.Builder().user(userTO.getKey()).build()).getResult().get(0);
form = userRequestService.unclaimForm(form.getTaskId());
assertNull(form.getAssignee());
assertNotNull(userTO);
@@ -185,8 +185,8 @@ public class UserSelfITCase extends AbstractITCase {
}
// 3. approve and verify that propagation has happened
- form = userRequestService.getForms(
- new UserRequestFormQuery.Builder().user(userTO.getKey()).build()).getResult().get(0);
+ form = userRequestService.listForms(
+ new UserRequestQuery.Builder().user(userTO.getKey()).build()).getResult().get(0);
form = userRequestService.claimForm(form.getTaskId());
form.getProperty("approveCreate").get().setValue(Boolean.TRUE.toString());
userTO = userRequestService.submitForm(form);
@@ -285,8 +285,8 @@ public class UserSelfITCase extends AbstractITCase {
}
// 3. approve self-update as admin
- UserRequestForm form = userRequestService.getForms(
- new UserRequestFormQuery.Builder().user(updated.getKey()).build()).getResult().get(0);
+ UserRequestForm form = userRequestService.listForms(
+ new UserRequestQuery.Builder().user(updated.getKey()).build()).getResult().get(0);
form = userRequestService.claimForm(form.getTaskId());
form.getProperty("approveUpdate").get().setValue(Boolean.TRUE.toString());
updated = userRequestService.submitForm(form);
@@ -486,8 +486,8 @@ public class UserSelfITCase extends AbstractITCase {
assertEquals("createApproval", userTO.getStatus());
// 2. request if there is any pending task for user just created
- UserRequestForm form = userRequestService.getForms(
- new UserRequestFormQuery.Builder().user(userTO.getKey()).build()).getResult().get(0);
+ UserRequestForm form = userRequestService.listForms(
+ new UserRequestQuery.Builder().user(userTO.getKey()).build()).getResult().get(0);
assertNotNull(form);
assertNotNull(form.getUsername());
assertEquals(userTO.getUsername(), form.getUsername());
@@ -518,8 +518,8 @@ public class UserSelfITCase extends AbstractITCase {
// 4. claim task from bellini, with role "User manager" and in groupForWorkflowApproval
UserRequestService userService3 = clientFactory.create("bellini", ADMIN_PWD).
getService(UserRequestService.class);
- assertEquals(1, userService3.getForms(
- new UserRequestFormQuery.Builder().user(userTO.getKey()).build()).getTotalCount());
+ assertEquals(1, userService3.listForms(
+ new UserRequestQuery.Builder().user(userTO.getKey()).build()).getTotalCount());
form = userService3.claimForm(form.getTaskId());
assertNotNull(form);
assertNotNull(form.getTaskId());
@@ -550,7 +550,7 @@ public class UserSelfITCase extends AbstractITCase {
assumeTrue(FlowableDetector.isFlowableEnabledForUserWorkflow(syncopeService));
// read forms *before* any operation
- PagedResult<UserRequestForm> forms = userRequestService.getForms(new UserRequestFormQuery.Builder().build());
+ PagedResult<UserRequestForm> forms = userRequestService.listForms(new UserRequestQuery.Builder().build());
int preForms = forms.getTotalCount();
UserTO userTO = UserITCase.getUniqueSampleTO("createWithApproval@syncope.apache.org");
@@ -583,7 +583,7 @@ public class UserSelfITCase extends AbstractITCase {
assertNotNull(exception);
// 2. request if there is any pending form for user just created
- forms = userRequestService.getForms(new UserRequestFormQuery.Builder().build());
+ forms = userRequestService.listForms(new UserRequestQuery.Builder().build());
assertEquals(preForms + 1, forms.getTotalCount());
// 3. as admin, update user: still pending approval
@@ -593,8 +593,8 @@ public class UserSelfITCase extends AbstractITCase {
userPatch.setUsername(new StringReplacePatchItem.Builder().value(updatedUsername).build());
updateUser(userPatch);
- UserRequestForm form = userRequestService.getForms(
- new UserRequestFormQuery.Builder().user(userTO.getKey()).build()).getResult().get(0);
+ UserRequestForm form = userRequestService.listForms(
+ new UserRequestQuery.Builder().user(userTO.getKey()).build()).getResult().get(0);
assertNotNull(form);
assertNotNull(form.getTaskId());
assertNotNull(form.getUserTO());
@@ -638,8 +638,8 @@ public class UserSelfITCase extends AbstractITCase {
assumeTrue(FlowableDetector.isFlowableEnabledForUserWorkflow(syncopeService));
// read forms *before* any operation
- PagedResult<UserRequestForm> forms = userRequestService.getForms(
- new UserRequestFormQuery.Builder().build());
+ PagedResult<UserRequestForm> forms = userRequestService.listForms(
+ new UserRequestQuery.Builder().build());
int preForms = forms.getTotalCount();
UserTO created = createUser(UserITCase.getUniqueSampleTO("updateApproval@syncope.apache.org")).getEntity();
@@ -656,11 +656,11 @@ public class UserSelfITCase extends AbstractITCase {
assertEquals(Response.Status.OK.getStatusCode(), response.getStatus());
assertEquals("updateApproval", userService.read(created.getKey()).getStatus());
- forms = userRequestService.getForms(new UserRequestFormQuery.Builder().build());
+ forms = userRequestService.listForms(new UserRequestQuery.Builder().build());
assertEquals(preForms + 1, forms.getTotalCount());
- UserRequestForm form = userRequestService.getForms(
- new UserRequestFormQuery.Builder().user(created.getKey()).build()).getResult().get(0);
+ UserRequestForm form = userRequestService.listForms(
+ new UserRequestQuery.Builder().user(created.getKey()).build()).getResult().get(0);
assertNotNull(form);
assertNotNull(form.getTaskId());
assertNull(form.getAssignee());
@@ -679,8 +679,8 @@ public class UserSelfITCase extends AbstractITCase {
assertEquals(0, updated.getMemberships().size());
// the patch is not updated in the approval form
- form = userRequestService.getForms(
- new UserRequestFormQuery.Builder().user(created.getKey()).build()).getResult().get(0);
+ form = userRequestService.listForms(
+ new UserRequestQuery.Builder().user(created.getKey()).build()).getResult().get(0);
assertEquals(patch, form.getUserPatch());
// approve the user
@@ -716,7 +716,7 @@ public class UserSelfITCase extends AbstractITCase {
assumeTrue(FlowableDetector.isFlowableEnabledForUserWorkflow(syncopeService));
// read forms *before* any operation
- PagedResult<UserRequestForm> forms = userRequestService.getForms(new UserRequestFormQuery.Builder().build());
+ PagedResult<UserRequestForm> forms = userRequestService.listForms(new UserRequestQuery.Builder().build());
int preForms = forms.getTotalCount();
UserTO userTO = UserITCase.getUniqueSampleTO("issueSYNCOPE15@syncope.apache.org");
@@ -740,11 +740,11 @@ public class UserSelfITCase extends AbstractITCase {
assertEquals(userTO.getCreationDate(), userTO.getLastChangeDate());
// 2. request if there is any pending form for user just created
- forms = userRequestService.getForms(new UserRequestFormQuery.Builder().build());
+ forms = userRequestService.listForms(new UserRequestQuery.Builder().build());
assertEquals(preForms + 1, forms.getTotalCount());
- UserRequestForm form = userRequestService.getForms(
- new UserRequestFormQuery.Builder().user(userTO.getKey()).build()).getResult().get(0);
+ UserRequestForm form = userRequestService.listForms(
+ new UserRequestQuery.Builder().user(userTO.getKey()).build()).getResult().get(0);
assertNotNull(form);
// 3. first claim by bellini ....
@@ -766,12 +766,12 @@ public class UserSelfITCase extends AbstractITCase {
userTO = userRequestService.submitForm(form);
assertNotNull(userTO);
assertEquals(preForms,
- userRequestService.getForms(new UserRequestFormQuery.Builder().build()).getTotalCount());
- assertTrue(userRequestService.getForms(
- new UserRequestFormQuery.Builder().user(userTO.getKey()).build()).getResult().isEmpty());
+ userRequestService.listForms(new UserRequestQuery.Builder().build()).getTotalCount());
+ assertTrue(userRequestService.listForms(
+ new UserRequestQuery.Builder().user(userTO.getKey()).build()).getResult().isEmpty());
// 7.check that no more forms are still to be processed
- forms = userRequestService.getForms(new UserRequestFormQuery.Builder().build());
+ forms = userRequestService.listForms(new UserRequestQuery.Builder().build());
assertEquals(preForms, forms.getTotalCount());
}