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 11:11:18 UTC
[syncope] branch master 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 master
in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/master by this push:
new 3875ff0 [SYNCOPE-1594] Adding top search bar for user requests and forms
3875ff0 is described below
commit 3875ff05175f70d94406a88641d9964498fac547
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
---
.../ui/commons/markup/html/form/FieldPanel.java | 3 +-
.../syncope/client/console/pages/UserRequests.java | 8 +-
.../console/panels/UserRequestDirectoryPanel.java | 39 +++++----
.../panels/UserRequestFormDirectoryPanel.java | 88 ++++++++++----------
.../client/console/panels/UserRequestsPanel.java | 88 ++++++++++++++++++++
.../client/console/rest/UserRequestRestClient.java | 60 +++++++++-----
.../console/widgets/UserRequestFormsWidget.java | 7 +-
.../client/console/panels/UserRequestsPanel.html | 36 +++++++++
.../syncope/client/enduser/pages/Flowable.java | 4 +-
.../client/enduser/rest/UserRequestRestClient.java | 26 +++---
.../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 +++++++--------
17 files changed, 365 insertions(+), 259 deletions(-)
diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/FieldPanel.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/FieldPanel.java
index 663d2a5..f587c29 100644
--- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/FieldPanel.java
+++ b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/FieldPanel.java
@@ -100,6 +100,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;
@@ -150,7 +151,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 8822c2a..f1dafe9 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
@@ -28,6 +28,7 @@ import org.apache.syncope.client.ui.commons.Constants;
import org.apache.syncope.client.ui.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;
@@ -38,10 +39,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
@@ -51,8 +54,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);
@@ -121,7 +126,19 @@ public class UserRequestDirectoryPanel
return List.of();
}
- 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);
+ }
+ }
+
+ protected final class UserRequestProvider extends DirectoryDataProvider<UserRequest> {
private static final long serialVersionUID = -1392420250782313734L;
@@ -134,26 +151,18 @@ public class UserRequestDirectoryPanel
@Override
public Iterator<UserRequest> iterator(final long first, final long count) {
int page = ((int) first / paginatorRows);
- return UserRequestRestClient.getUserRequests((page < 0 ? 0 : page) + 1,
- paginatorRows, getSort()).iterator();
+ return UserRequestRestClient.listRequests(
+ keyword, (page < 0 ? 0 : page) + 1, paginatorRows, getSort()).iterator();
}
@Override
public long size() {
- return UserRequestRestClient.countUserRequests();
+ return UserRequestRestClient.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 5f39f11..f7ec011 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
@@ -32,6 +32,7 @@ import org.apache.syncope.client.console.rest.UserRequestRestClient;
import org.apache.syncope.client.console.panels.UserRequestFormDirectoryPanel.UserRequestFormProvider;
import org.apache.syncope.client.console.layout.AnyLayoutUtils;
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;
@@ -51,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.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;
@@ -66,7 +68,7 @@ public class UserRequestFormDirectoryPanel
private static final String PREF_USER_REQUEST_FORM_PAGINATOR_ROWS = "userrequestform.paginator.rows";
- protected final BaseModal<UserRequestForm> manageFormModal = new BaseModal<UserRequestForm>("outer") {
+ private final BaseModal<UserRequestForm> manageFormModal = new BaseModal<UserRequestForm>("outer") {
private static final long serialVersionUID = 389935548143327858L;
@@ -76,11 +78,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);
@@ -159,10 +162,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 {
+ UserRequestRestClient.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);
@@ -173,10 +180,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 {
+ UserRequestRestClient.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);
}
@@ -287,7 +298,24 @@ public class UserRequestFormDirectoryPanel
return PREF_USER_REQUEST_FORM_PAGINATOR_ROWS;
}
- protected static class UserRequestFormProvider extends DirectoryDataProvider<UserRequestForm> {
+ @Override
+ protected Collection<ActionLink.ActionType> getBatches() {
+ return List.of();
+ }
+
+ @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);
+ }
+ }
+
+ protected final class UserRequestFormProvider extends DirectoryDataProvider<UserRequestForm> {
private static final long serialVersionUID = -2311716167583335852L;
@@ -300,46 +328,18 @@ public class UserRequestFormDirectoryPanel
@Override
public Iterator<UserRequestForm> iterator(final long first, final long count) {
int page = ((int) first / paginatorRows);
- return UserRequestRestClient.getForms((page < 0 ? 0 : page) + 1, paginatorRows, getSort()).iterator();
+ return UserRequestRestClient.listForms(
+ keyword, (page < 0 ? 0 : page) + 1, paginatorRows, getSort()).iterator();
}
@Override
public long size() {
- return UserRequestRestClient.countForms();
+ return UserRequestRestClient.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 List.of();
- }
-
- private void claimForm(final String taskId) {
- try {
- UserRequestRestClient.claimForm(taskId);
- } catch (SyncopeClientException scee) {
- SyncopeConsoleSession.get().onException(scee);
- }
- }
-
- private void unclaimForm(final String taskId) {
- try {
- UserRequestRestClient.unclaimForm(taskId);
- } catch (SyncopeClientException scee) {
- SyncopeConsoleSession.get().onException(scee);
+ return Model.of(form);
}
}
}
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..fa9a58b
--- /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.ui.commons.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 03cf6c9..a9e6b43 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
@@ -20,10 +20,10 @@ package org.apache.syncope.client.console.rest;
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 +32,59 @@ public class UserRequestRestClient extends BaseRestClient {
private static final long serialVersionUID = -4785231164900813921L;
- public static int countUserRequests() {
- return getService(UserRequestService.class).
- list(new UserRequestQuery.Builder().page(1).size(0).build()).
- getTotalCount();
+ public static 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 static 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 static 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 List.of();
+ }
}
public static void cancelRequest(final String executionId, final String reason) {
- getService(UserRequestService.class).cancel(executionId, reason);
+ getService(UserRequestService.class).cancelRequest(executionId, reason);
}
- public static int countForms() {
- return getService(UserRequestService.class).
- getForms(new UserRequestFormQuery.Builder().page(1).size(0).build()).
- getTotalCount();
+ public static 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 static 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 static 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 List.of();
+ }
}
public static 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 530d74f..1bf5e18 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
@@ -87,7 +87,7 @@ public class UserRequestFormsWidget extends ExtAlertWidget<UserRequestForm> {
@Override
protected int getLatestAlertsSize() {
return SyncopeConsoleSession.get().owns(FlowableEntitlement.USER_REQUEST_FORM_LIST)
- ? UserRequestRestClient.countForms()
+ ? UserRequestRestClient.countForms(null)
: 0;
}
@@ -101,9 +101,10 @@ public class UserRequestFormsWidget extends ExtAlertWidget<UserRequestForm> {
public List<UserRequestForm> getObject() {
List<UserRequestForm> updatedForms;
if (SyncopeConsoleSession.get().owns(FlowableEntitlement.USER_REQUEST_FORM_LIST)) {
- updatedForms = UserRequestRestClient.getForms(1, MAX_SIZE, new SortParam<>("createTime", true));
+ updatedForms = UserRequestRestClient.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/pages/Flowable.java b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/pages/Flowable.java
index 3e801dc..9e30828 100644
--- a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/pages/Flowable.java
+++ b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/pages/Flowable.java
@@ -240,7 +240,7 @@ public class Flowable extends BaseExtPage {
@Override
public Iterator<UserRequest> iterator(final long first, final long count) {
final int page = ((int) first / paginatorRows);
- return UserRequestRestClient.getUserRequests((page < 0 ? 0 : page) + 1,
+ return UserRequestRestClient.listRequests((page < 0 ? 0 : page) + 1,
paginatorRows,
SyncopeEnduserSession.get().getSelfTO().getUsername(),
new SortParam<>(sortParam, true)).iterator();
@@ -248,7 +248,7 @@ public class Flowable extends BaseExtPage {
@Override
public long size() {
- return UserRequestRestClient.countUserRequests();
+ return UserRequestRestClient.countRequests();
}
@Override
diff --git a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/rest/UserRequestRestClient.java b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/rest/UserRequestRestClient.java
index 02ac11f..f3d0faa 100644
--- a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/rest/UserRequestRestClient.java
+++ b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/rest/UserRequestRestClient.java
@@ -24,7 +24,6 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.enduser.SyncopeEnduserSession;
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;
@@ -33,21 +32,22 @@ public class UserRequestRestClient extends BaseRestClient {
private static final long serialVersionUID = -4785231164900813921L;
- public static int countUserRequests() {
+ public static int countRequests() {
return getService(UserRequestService.class).
- list(new UserRequestQuery.Builder()
+ listRequests(new UserRequestQuery.Builder()
.user(SyncopeEnduserSession.get().getSelfTO().getUsername())
.page(1)
.size(0)
.build()).getTotalCount();
}
- public static List<UserRequest> getUserRequests(
- final int page,
- final int size,
- final String username,
- final SortParam<String> sort) {
- return getService(UserRequestService.class).list(new UserRequestQuery.Builder().
+ public static List<UserRequest> listRequests(
+ final int page,
+ final int size,
+ final String username,
+ final SortParam<String> sort) {
+
+ return getService(UserRequestService.class).listRequests(new UserRequestQuery.Builder().
user(StringUtils.isBlank(username)
? SyncopeEnduserSession.get().getSelfTO().getUsername()
: username).
@@ -55,18 +55,18 @@ public class UserRequestRestClient extends BaseRestClient {
}
public static void cancelRequest(final String executionId, final String reason) {
- getService(UserRequestService.class).cancel(executionId, reason);
+ getService(UserRequestService.class).cancelRequest(executionId, reason);
}
public static int countForms() {
return getService(UserRequestService.class).
- getForms(new UserRequestFormQuery.Builder().page(1).size(0).build()).
+ listForms(new UserRequestQuery.Builder().page(1).size(0).build()).
getTotalCount();
}
public static 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()).
+ listForms(new UserRequestQuery.Builder().page(page).size(size).orderBy(toOrderBy(sort)).build()).
getResult();
}
@@ -82,7 +82,7 @@ public class UserRequestRestClient extends BaseRestClient {
}
public static void start(final String bpmnProcess, final String user) {
- getService(UserRequestService.class).start(bpmnProcess, user, null);
+ getService(UserRequestService.class).startRequest(bpmnProcess, user, null);
}
public static UserRequestForm claimForm(final String taskKey) {
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 0bd38b5..0ed2be1 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 fcd51c1..25393f6 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
@@ -67,7 +67,7 @@ import org.apache.syncope.common.lib.types.IdRepoEntitlement;
import org.apache.syncope.common.lib.types.StatusRType;
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;
@@ -490,8 +490,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 ae9db45..c703e67 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
@@ -41,7 +41,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;
@@ -79,7 +78,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());
@@ -88,59 +87,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);
@@ -153,7 +152,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.getUniqueSample("twoLevelsApproval@tirasa.net")).getEntity();
@@ -161,31 +160,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.getUniqueSample("userSelection@tirasa.net")).getEntity();
@@ -196,16 +195,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);
@@ -220,19 +219,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());
@@ -242,11 +241,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();
@@ -258,7 +257,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.getUniqueSample("addVariables@tirasa.net")).getEntity();
@@ -270,16 +269,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);
@@ -287,14 +287,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 88dae68..781539d 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
@@ -56,7 +56,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;
@@ -125,8 +125,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);
@@ -161,8 +161,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);
@@ -175,8 +175,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);
@@ -273,8 +273,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);
@@ -473,8 +473,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());
@@ -505,8 +505,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());
@@ -536,7 +536,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();
UserCR userCR = UserITCase.getUniqueSample("createWithApproval@syncope.apache.org");
@@ -569,7 +569,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
@@ -579,8 +579,8 @@ public class UserSelfITCase extends AbstractITCase {
userUR.setUsername(new StringReplacePatchItem.Builder().value(updatedUsername).build());
updateUser(userUR);
- 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());
@@ -623,8 +623,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.getUniqueSample("updateApproval@syncope.apache.org")).getEntity();
@@ -641,11 +641,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());
@@ -664,8 +664,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(req, form.getUserUR());
// approve the user
@@ -700,7 +700,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();
UserCR userCR = UserITCase.getUniqueSample("issueSYNCOPE15@syncope.apache.org");
@@ -722,11 +722,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 ....
@@ -748,12 +748,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());
}