You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2019/02/04 16:39:19 UTC

[syncope] branch 2_1_X updated: Flowable: simplifying forms retrieval

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 f4c81a5  Flowable: simplifying forms retrieval
f4c81a5 is described below

commit f4c81a5490255ae84214791bde6ba44f57599109
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Mon Feb 4 17:38:56 2019 +0100

    Flowable: simplifying forms retrieval
---
 .../resources/pgjsonb/domains/MasterContent.xml     |  1 +
 .../src/test/resources/domains/MasterContent.xml    |  1 +
 .../flowable/impl/FlowableUserRequestHandler.java   | 21 +++------------------
 .../org/apache/syncope/fit/core/UserSelfITCase.java |  2 ++
 4 files changed, 7 insertions(+), 18 deletions(-)

diff --git a/core/persistence-jpa-json/src/test/resources/pgjsonb/domains/MasterContent.xml b/core/persistence-jpa-json/src/test/resources/pgjsonb/domains/MasterContent.xml
index 60834e6..9bbfcbf 100644
--- a/core/persistence-jpa-json/src/test/resources/pgjsonb/domains/MasterContent.xml
+++ b/core/persistence-jpa-json/src/test/resources/pgjsonb/domains/MasterContent.xml
@@ -318,6 +318,7 @@ under the License.
   <SyncopeRole_entitlements entitlement="ANYTYPE_READ" role_id="User manager"/>
   <SyncopeRole_entitlements entitlement="ANYTYPECLASS_LIST" role_id="User manager"/>
   <SyncopeRole_entitlements entitlement="ANYTYPECLASS_READ" role_id="User manager"/>
+  <SyncopeRole_entitlements entitlement="USER_REQUEST_FORM_LIST" role_id="User manager"/>
   <SyncopeRole_entitlements entitlement="USER_REQUEST_FORM_CLAIM" role_id="User manager"/>
   <SyncopeRole_entitlements entitlement="USER_REQUEST_FORM_SUBMIT" role_id="User manager"/>
   <SyncopeRole_Realm role_id="User manager" realm_id="e4c28e7a-9dbf-4ee7-9441-93812a0d4a28"/>
diff --git a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
index 5a41085..fe0077d 100644
--- a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
+++ b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
@@ -253,6 +253,7 @@ under the License.
   <SyncopeRole_entitlements entitlement="ANYTYPE_READ" role_id="User manager"/>
   <SyncopeRole_entitlements entitlement="ANYTYPECLASS_LIST" role_id="User manager"/>
   <SyncopeRole_entitlements entitlement="ANYTYPECLASS_READ" role_id="User manager"/>
+  <SyncopeRole_entitlements entitlement="USER_REQUEST_FORM_LIST" role_id="User manager"/>
   <SyncopeRole_entitlements entitlement="USER_REQUEST_FORM_CLAIM" role_id="User manager"/>
   <SyncopeRole_entitlements entitlement="USER_REQUEST_FORM_SUBMIT" role_id="User manager"/>
   <SyncopeRole_Realm role_id="User manager" realm_id="e4c28e7a-9dbf-4ee7-9441-93812a0d4a28"/>
diff --git a/ext/flowable/flowable-bpmn/src/main/java/org/apache/syncope/core/flowable/impl/FlowableUserRequestHandler.java b/ext/flowable/flowable-bpmn/src/main/java/org/apache/syncope/core/flowable/impl/FlowableUserRequestHandler.java
index 22bd357..86a6c03 100644
--- a/ext/flowable/flowable-bpmn/src/main/java/org/apache/syncope/core/flowable/impl/FlowableUserRequestHandler.java
+++ b/ext/flowable/flowable-bpmn/src/main/java/org/apache/syncope/core/flowable/impl/FlowableUserRequestHandler.java
@@ -19,7 +19,6 @@
 package org.apache.syncope.core.flowable.impl;
 
 import org.apache.syncope.core.flowable.api.UserRequestHandler;
-import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
@@ -459,29 +458,15 @@ public class FlowableUserRequestHandler implements UserRequestHandler {
             final int size,
             final List<OrderByClause> orderByClauses) {
 
-        Pair<Integer, List<UserRequestForm>> forms;
-
         TaskQuery query = engine.getTaskService().createTaskQuery().taskWithFormKey();
         if (userKey != null) {
             query.processInstanceBusinessKeyLike(FlowableRuntimeUtils.getProcBusinessKey("%", userKey));
         }
 
         String authUser = AuthContextUtils.getUsername();
-        if (adminUser.equals(authUser)) {
-            forms = getForms(query, page, size, orderByClauses);
-        } else {
-            User user = userDAO.findByUsername(authUser);
-            forms = getForms(query.taskCandidateOrAssigned(user.getUsername()), page, size, orderByClauses);
-
-            List<String> candidateGroups = new ArrayList<>(userDAO.findAllGroupNames(user));
-            if (!candidateGroups.isEmpty()) {
-                forms = getForms(query.taskCandidateGroupIn(candidateGroups), page, size, orderByClauses);
-            }
-        }
-
-        return forms == null
-                ? Pair.of(0, Collections.<UserRequestForm>emptyList())
-                : forms;
+        return adminUser.equals(authUser)
+                ? getForms(query, page, size, orderByClauses)
+                : getForms(query.taskCandidateOrAssigned(authUser), page, size, orderByClauses);
     }
 
     protected Pair<Integer, List<UserRequestForm>> getForms(
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 08c1d6a..2fad213 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
@@ -512,6 +512,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());
         form = userService3.claimForm(form.getTaskId());
         assertNotNull(form);
         assertNotNull(form.getTaskId());