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();