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 2021/05/18 15:57:35 UTC

[syncope] branch master updated (48ece56 -> 1a72292)

This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git.


    from 48ece56  [SYNCOPE-1633] Confirm dialog custom message
     new f69ec45  Upgrading GreenMail
     new 1a72292  [SYNCOPE-1634] Provision group during user/group owner update (#263)

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../java/data/GroupDataBinderImpl.java             | 43 ++++++++++++++++++----
 pom.xml                                            |  2 +-
 2 files changed, 37 insertions(+), 8 deletions(-)

[syncope] 01/02: Upgrading GreenMail

Posted by il...@apache.org.
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

commit f69ec458e51cf51e47b3814faac4deb34d242091
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Mon May 17 14:58:35 2021 +0200

    Upgrading GreenMail
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 307a678..deb1260 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1274,7 +1274,7 @@ under the License.
       <dependency>
         <groupId>com.icegreen</groupId>
         <artifactId>greenmail</artifactId>
-        <version>1.6.3</version>
+        <version>1.6.4</version>
         <exclusions>
           <exclusion>
             <groupId>junit</groupId>

[syncope] 02/02: [SYNCOPE-1634] Provision group during user/group owner update (#263)

Posted by il...@apache.org.
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

commit 1a7229230e6e058cbc2152530491e8c98fc5f433
Author: DmitriyBrashevets <47...@users.noreply.github.com>
AuthorDate: Tue May 18 18:51:07 2021 +0300

    [SYNCOPE-1634] Provision group during user/group owner update (#263)
---
 .../java/data/GroupDataBinderImpl.java             | 43 ++++++++++++++++++----
 1 file changed, 36 insertions(+), 7 deletions(-)

diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java
index cdca128..1994d57 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java
@@ -209,15 +209,42 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
         }
 
         // owner
+        PropagationByResource<String> ownerPropByRes = new PropagationByResource<>();
         if (groupUR.getUserOwner() != null) {
-            group.setUserOwner(groupUR.getUserOwner().getValue() == null
-                    ? null
-                    : userDAO.find(groupUR.getUserOwner().getValue()));
+            if (groupUR.getUserOwner().getValue() == null) {
+                if (group.getUserOwner() != null) {
+                    group.setUserOwner(null);
+                    ownerPropByRes.addAll(ResourceOperation.UPDATE, groupDAO.findAllResourceKeys(group.getKey()));
+                }
+            } else {
+                User userOwner = userDAO.find(groupUR.getUserOwner().getValue());
+                if (userOwner == null) {
+                    LOG.debug("Unable to find user owner for group {} by key {}",
+                            group.getKey(), groupUR.getUserOwner().getValue());
+                    group.setUserOwner(null);
+                } else {
+                    group.setUserOwner(userOwner);
+                    ownerPropByRes.addAll(ResourceOperation.UPDATE, groupDAO.findAllResourceKeys(group.getKey()));
+                }
+            }
         }
         if (groupUR.getGroupOwner() != null) {
-            group.setGroupOwner(groupUR.getGroupOwner().getValue() == null
-                    ? null
-                    : groupDAO.find(groupUR.getGroupOwner().getValue()));
+            if (groupUR.getGroupOwner().getValue() == null) {
+                if (group.getGroupOwner() != null) {
+                    group.setGroupOwner(null);
+                    ownerPropByRes.addAll(ResourceOperation.UPDATE, groupDAO.findAllResourceKeys(group.getKey()));
+                }
+            } else {
+                Group groupOwner = groupDAO.find(groupUR.getGroupOwner().getValue());
+                if (groupOwner == null) {
+                    LOG.debug("Unable to find group owner for group {} by key {}",
+                            group.getKey(), groupUR.getGroupOwner().getValue());
+                    group.setGroupOwner(null);
+                } else {
+                    group.setGroupOwner(groupOwner);
+                    ownerPropByRes.addAll(ResourceOperation.UPDATE, groupDAO.findAllResourceKeys(group.getKey()));
+                }
+            }
         }
 
         // attributes and resources
@@ -299,8 +326,10 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
         group = groupDAO.save(group);
 
         // Build final information for next stage (propagation)
-        return propByRes(
+        PropagationByResource<String> propByRes = propByRes(
                 beforeOnResources, onResources(group, groupDAO.findAllResourceKeys(group.getKey()), null, false));
+        propByRes.merge(ownerPropByRes);
+        return propByRes;
     }
 
     @Override