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 65377100fc [SYNCOPE-1912] Fixing resource assignment
65377100fc is described below

commit 65377100fcc8a7fa34737677eff7e6c22d10d78e
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Mon Sep 15 12:32:03 2025 +0200

    [SYNCOPE-1912] Fixing resource assignment
---
 .../java/propagation/DefaultPropagationManager.java          | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/DefaultPropagationManager.java
 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/DefaultPropagationManager.java
index c4536f16f9..0565d3d574 100644
--- 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/DefaultPropagationManager.java
+++ 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/DefaultPropagationManager.java
@@ -226,11 +226,9 @@ public class DefaultPropagationManager implements 
PropagationManager {
     public List<PropagationTaskInfo> getUserUpdateTasks(final 
UserWorkflowResult<Pair<UserUR, Boolean>> wfResult) {
         UserUR userUR = wfResult.getResult().getLeft();
 
-        Collection<String> assignedResources = 
anyUtilsFactory.getInstance(AnyTypeKind.USER).
-                dao().findAllResourceKeys(userUR.getKey());
         List<String> urPwdResources = userUR.getPassword() == null
                 ? List.of()
-                : 
userUR.getPassword().getResources().stream().filter(assignedResources::contains).distinct().toList();
+                : 
userUR.getPassword().getResources().stream().distinct().toList();
 
         List<String> laPwdResources = userUR.getLinkedAccounts().stream().
                 filter(laur -> laur.getOperation() == 
PatchOperation.ADD_REPLACE).
@@ -253,13 +251,13 @@ public class DefaultPropagationManager implements 
PropagationManager {
 
             PropagationByResource<String> urNoPwdPropByRes = new 
PropagationByResource<>();
             urNoPwdPropByRes.merge(wfResult.getPropByRes());
-            urNoPwdPropByRes.removeAll(urPwdResources);
             urNoPwdPropByRes.purge();
+            urNoPwdPropByRes.removeAll(urPwdResources);
 
             PropagationByResource<Pair<String, String>> laNoPwdPropByRes = new 
PropagationByResource<>();
             laNoPwdPropByRes.merge(wfResult.getPropByLinkedAccount());
-            laNoPwdPropByRes.removeIf(p -> 
laPwdResources.contains(p.getLeft()));
             laNoPwdPropByRes.purge();
+            laNoPwdPropByRes.removeIf(p -> 
laPwdResources.contains(p.getLeft()));
 
             if (!urNoPwdPropByRes.isEmpty() || !laNoPwdPropByRes.isEmpty()) {
                 UserWorkflowResult<Pair<UserUR, Boolean>> noPwdWFResult = new 
UserWorkflowResult<>(
@@ -273,13 +271,13 @@ public class DefaultPropagationManager implements 
PropagationManager {
 
             PropagationByResource<String> urPwdPropByRes = new 
PropagationByResource<>();
             urPwdPropByRes.merge(wfResult.getPropByRes());
-            urPwdPropByRes.retainAll(urPwdResources);
             urPwdPropByRes.purge();
+            urPwdPropByRes.retainAll(urPwdResources);
 
             PropagationByResource<Pair<String, String>> laPwdPropByRes = new 
PropagationByResource<>();
             laPwdPropByRes.merge(wfResult.getPropByLinkedAccount());
-            laPwdPropByRes.removeIf(p -> 
!laPwdResources.contains(p.getLeft()));
             laPwdPropByRes.purge();
+            laPwdPropByRes.removeIf(p -> 
!laPwdResources.contains(p.getLeft()));
 
             if (!urPwdPropByRes.isEmpty() || !laPwdPropByRes.isEmpty()) {
                 UserWorkflowResult<Pair<UserUR, Boolean>> pwdWFResult = new 
UserWorkflowResult<>(

Reply via email to