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

ilgrosso pushed a commit to branch 3_0_X
in repository https://gitbox.apache.org/repos/asf/syncope.git


The following commit(s) were added to refs/heads/3_0_X by this push:
     new 634e757eca [SYNCOPE-1851] Further fixes for date fields in Macro forms
634e757eca is described below

commit 634e757eca222e0553d629e79a8e28c12bef9e29
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Fri Jan 10 09:41:13 2025 +0100

    [SYNCOPE-1851] Further fixes for date fields in Macro forms
---
 .../client/ui/commons/panels/SyncopeFormPanel.java       | 12 ++++++++++--
 .../syncope/core/logic/saml2/SAML2SP4UIUserManager.java  | 16 ++++++++++------
 2 files changed, 20 insertions(+), 8 deletions(-)

diff --git 
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/panels/SyncopeFormPanel.java
 
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/panels/SyncopeFormPanel.java
index 41b8c3a8d3..24b2dfa27b 100644
--- 
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/panels/SyncopeFormPanel.java
+++ 
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/panels/SyncopeFormPanel.java
@@ -31,6 +31,7 @@ import org.apache.commons.lang3.time.FastDateFormat;
 import org.apache.syncope.client.ui.commons.MapChoiceRenderer;
 import 
org.apache.syncope.client.ui.commons.markup.html.form.AbstractFieldPanel;
 import org.apache.syncope.client.ui.commons.markup.html.form.AjaxCheckBoxPanel;
+import 
org.apache.syncope.client.ui.commons.markup.html.form.AjaxDateFieldPanel;
 import 
org.apache.syncope.client.ui.commons.markup.html.form.AjaxDateTimeFieldPanel;
 import 
org.apache.syncope.client.ui.commons.markup.html.form.AjaxDropDownChoicePanel;
 import 
org.apache.syncope.client.ui.commons.markup.html.form.AjaxNumberFieldPanel;
@@ -95,7 +96,8 @@ public class SyncopeFormPanel<F extends SyncopeForm> extends 
Panel {
                         FastDateFormat formatter = 
StringUtils.isBlank(prop.getDatePattern())
                                 ? FastDateFormat.getInstance()
                                 : 
FastDateFormat.getInstance(prop.getDatePattern());
-                        field = new AjaxDateTimeFieldPanel("value", label, new 
PropertyModel<>(prop, "value") {
+
+                        PropertyModel<Date> dateModel = new 
PropertyModel<>(prop, "value") {
 
                             private static final long serialVersionUID = 
-3743432456095828573L;
 
@@ -115,7 +117,13 @@ public class SyncopeFormPanel<F extends SyncopeForm> 
extends Panel {
                             public void setObject(final Date object) {
                                 Optional.ofNullable(object).ifPresent(date -> 
prop.setValue(formatter.format(date)));
                             }
-                        }, formatter);
+                        };
+
+                        if 
(StringUtils.containsIgnoreCase(prop.getDatePattern(), "H")) {
+                            field = new AjaxDateTimeFieldPanel("value", label, 
dateModel, formatter);
+                        } else {
+                            field = new AjaxDateFieldPanel("value", label, 
dateModel, formatter);
+                        }
                         break;
 
                     case Enum:
diff --git 
a/ext/saml2sp4ui/logic/src/main/java/org/apache/syncope/core/logic/saml2/SAML2SP4UIUserManager.java
 
b/ext/saml2sp4ui/logic/src/main/java/org/apache/syncope/core/logic/saml2/SAML2SP4UIUserManager.java
index 21bacfbe21..43724ec2fb 100644
--- 
a/ext/saml2sp4ui/logic/src/main/java/org/apache/syncope/core/logic/saml2/SAML2SP4UIUserManager.java
+++ 
b/ext/saml2sp4ui/logic/src/main/java/org/apache/syncope/core/logic/saml2/SAML2SP4UIUserManager.java
@@ -259,12 +259,16 @@ public class SAML2SP4UIUserManager {
             userUR = action.beforeUpdate(userUR, loginResponse);
         }
 
-        Pair<UserUR, List<PropagationStatus>> updated =
-                provisioningManager.update(userUR, false, 
userTO.getUsername(), SAML2SP_CONTEXT);
-        userTO = binder.getUserTO(updated.getLeft().getKey());
-
-        for (SAML2SP4UIIdPActions action : actions) {
-            userTO = action.afterUpdate(userTO, loginResponse);
+        if (userUR.isEmpty()) {
+            LOG.debug("No actual changes to apply for {}, ignoring", 
userTO.getUsername());
+        } else {
+            Pair<UserUR, List<PropagationStatus>> updated =
+                    provisioningManager.update(userUR, false, 
userTO.getUsername(), SAML2SP_CONTEXT);
+            userTO = binder.getUserTO(updated.getLeft().getKey());
+
+            for (SAML2SP4UIIdPActions action : actions) {
+                userTO = action.afterUpdate(userTO, loginResponse);
+            }
         }
 
         return userTO.getUsername();

Reply via email to