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 2025/01/10 08:42:23 UTC
(syncope) branch master updated: [SYNCOPE-1851] Further fixes for date fields in Macro forms
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 20014a4f94 [SYNCOPE-1851] Further fixes for date fields in Macro forms
20014a4f94 is described below
commit 20014a4f94cc11ab20fc9015803c6a0be266913a
Author: Francesco Chicchiriccò <il...@apache.org>
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 2ab1ea062a..662cd85017 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 1b1c121d90..47c01fdd45 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
@@ -260,12 +260,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();