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