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 2016/07/20 14:58:12 UTC
[18/43] syncope git commit: [SYNCOPE-896] fix for drop down null
valid flag + destination realm management improvement
[SYNCOPE-896] fix for drop down null valid flag + destination realm management improvement
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/49b4f39c
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/49b4f39c
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/49b4f39c
Branch: refs/heads/2_0_NO_JAXB
Commit: 49b4f39c8aaf35362f72dc23d1698e1d1879b8d2
Parents: e3fc226
Author: fmartelli <fa...@gmail.com>
Authored: Fri Jul 8 16:54:56 2016 +0200
Committer: fmartelli <fa...@gmail.com>
Committed: Fri Jul 8 16:54:56 2016 +0200
----------------------------------------------------------------------
.../html/form/AjaxDropDownChoicePanel.java | 10 +++++-
.../any/AnyObjectTemplateWizardBuilder.java | 12 +++++++
.../wizards/any/AnyObjectWizardBuilder.java | 9 ++---
.../console/wizards/any/AnyWizardBuilder.java | 15 ++++----
.../client/console/wizards/any/Details.java | 38 ++++++++++++++++----
.../wizards/any/GroupTemplateWizardBuilder.java | 12 +++++++
.../console/wizards/any/GroupWizardBuilder.java | 9 ++---
.../wizards/any/UserTemplateWizardBuilder.java | 12 +++++++
.../console/wizards/any/UserWizardBuilder.java | 9 ++---
9 files changed, 95 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/49b4f39c/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDropDownChoicePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDropDownChoicePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDropDownChoicePanel.java
index f08684f..7a1bfc4 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDropDownChoicePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDropDownChoicePanel.java
@@ -59,6 +59,14 @@ public class AjaxDropDownChoicePanel<T extends Serializable> extends FieldPanel<
}
});
}
+
+ setNullValid(true);
+ }
+
+ @Override
+ public FieldPanel<T> setRequired(final boolean required) {
+ setNullValid(!required);
+ return super.setRequired(required);
}
@SuppressWarnings("unchecked")
@@ -79,7 +87,7 @@ public class AjaxDropDownChoicePanel<T extends Serializable> extends FieldPanel<
return this;
}
- public AjaxDropDownChoicePanel<T> setNullValid(final boolean validity) {
+ public final AjaxDropDownChoicePanel<T> setNullValid(final boolean validity) {
BootstrapSelect.class.cast(field).setNullValid(validity);
return this;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/49b4f39c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectTemplateWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectTemplateWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectTemplateWizardBuilder.java
index da37ad5..239a503 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectTemplateWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectTemplateWizardBuilder.java
@@ -31,6 +31,8 @@ public class AnyObjectTemplateWizardBuilder extends AnyObjectWizardBuilder
private static final long serialVersionUID = 6716803168859873877L;
+ private final TemplatableTO templatable;
+
public AnyObjectTemplateWizardBuilder(
final TemplatableTO templatable,
final String anyType,
@@ -38,6 +40,7 @@ public class AnyObjectTemplateWizardBuilder extends AnyObjectWizardBuilder
final AnyObjectFormLayoutInfo formLayoutInfo,
final PageReference pageRef) {
super(null, anyTypeClasses, formLayoutInfo, pageRef);
+ this.templatable = templatable;
if (templatable.getTemplates().containsKey(anyType)) {
setItem(new AnyWrapper<>(AnyObjectTO.class.cast(templatable.getTemplates().get(anyType))));
@@ -52,6 +55,15 @@ public class AnyObjectTemplateWizardBuilder extends AnyObjectWizardBuilder
}
@Override
+ protected Details<AnyObjectTO> addOptionalDetailsPanel(final AnyWrapper<AnyObjectTO> modelObject) {
+ final Details<AnyObjectTO> details = super.addOptionalDetailsPanel(modelObject);
+ if (templatable instanceof RealmTO) {
+ details.disableRealmSpecification();
+ }
+ return details;
+ }
+
+ @Override
public AjaxWizard<AnyWrapper<AnyObjectTO>> build(final String id) {
return super.build(id, AjaxWizard.Mode.TEMPLATE);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/49b4f39c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectWizardBuilder.java
index 9a8ad87..3eb30ea 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectWizardBuilder.java
@@ -31,7 +31,6 @@ import org.apache.syncope.common.lib.patch.AnyObjectPatch;
import org.apache.syncope.common.lib.to.AnyObjectTO;
import org.apache.syncope.common.lib.to.ProvisioningResult;
import org.apache.wicket.PageReference;
-import org.apache.wicket.extensions.wizard.WizardModel;
import org.apache.wicket.model.util.ListModel;
public class AnyObjectWizardBuilder extends AnyWizardBuilder<AnyObjectTO> implements AnyObjectForm {
@@ -72,13 +71,11 @@ public class AnyObjectWizardBuilder extends AnyWizardBuilder<AnyObjectTO> implem
}
@Override
- protected AnyObjectWizardBuilder addOptionalDetailsPanel(
- final AnyWrapper<AnyObjectTO> modelObject, final WizardModel wizardModel) {
- wizardModel.add(new AnyObjectDetails(
+ protected Details<AnyObjectTO> addOptionalDetailsPanel(final AnyWrapper<AnyObjectTO> modelObject) {
+ return new AnyObjectDetails(
modelObject,
new ListModel<>(Collections.<StatusBean>emptyList()),
mode == AjaxWizard.Mode.TEMPLATE,
- modelObject.getInnerObject().getKey() != null, pageRef));
- return this;
+ modelObject.getInnerObject().getKey() != null, pageRef);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/49b4f39c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java
index 793ebc7..4df08c0 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java
@@ -84,7 +84,10 @@ public abstract class AnyWizardBuilder<A extends AnyTO> extends AjaxWizardBuilde
@Override
protected WizardModel buildModelSteps(final AnyWrapper<A> modelObject, final WizardModel wizardModel) {
// optional details panel step
- addOptionalDetailsPanel(modelObject, wizardModel);
+ final Details<A> details = addOptionalDetailsPanel(modelObject);
+ if (details != null) {
+ wizardModel.add(details);
+ }
if ((this instanceof GroupWizardBuilder)
&& (modelObject.getInnerObject() instanceof GroupTO)
@@ -155,17 +158,17 @@ public abstract class AnyWizardBuilder<A extends AnyTO> extends AjaxWizardBuilde
return wizardModel;
}
- protected AnyWizardBuilder<A> addOptionalDetailsPanel(
- final AnyWrapper<A> modelObject, final WizardModel wizardModel) {
+ protected Details<A> addOptionalDetailsPanel(final AnyWrapper<A> modelObject) {
if (modelObject.getInnerObject().getKey() != null) {
- wizardModel.add(new Details<>(
+ return new Details<>(
modelObject,
new ListModel<>(Collections.<StatusBean>emptyList()),
mode == AjaxWizard.Mode.TEMPLATE,
true,
- pageRef));
+ pageRef);
+ } else {
+ return null;
}
- return this;
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/49b4f39c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java
index 483539a..8e1ccfb 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java
@@ -18,11 +18,17 @@
*/
package org.apache.syncope.client.console.wizards.any;
+import java.util.ArrayList;
import java.util.List;
-import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.Transformer;
import org.apache.syncope.client.console.commons.status.StatusBean;
+import org.apache.syncope.client.console.rest.RealmRestClient;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.FieldPanel;
import org.apache.syncope.common.lib.to.AnyTO;
+import org.apache.syncope.common.lib.to.RealmTO;
import org.apache.wicket.PageReference;
import org.apache.wicket.extensions.wizard.WizardStep;
import org.apache.wicket.model.IModel;
@@ -40,6 +46,8 @@ public class Details<T extends AnyTO> extends WizardStep {
protected final StatusPanel statusPanel;
+ private final FieldPanel<String> realm;
+
public Details(
final AnyWrapper<T> wrapper,
final IModel<List<StatusBean>> statusModel,
@@ -51,13 +59,26 @@ public class Details<T extends AnyTO> extends WizardStep {
final T inner = wrapper.getInnerObject();
- final AjaxTextFieldPanel realm = new AjaxTextFieldPanel(
- "destinationRealm", "destinationRealm", new PropertyModel<String>(inner, "realm"), false);
- add(realm.setReadOnly(StringUtils.isNotEmpty(inner.getRealm())));
if (templateMode) {
- realm.enableJexlHelp();
+ realm = new AjaxTextFieldPanel(
+ "destinationRealm", "destinationRealm", new PropertyModel<String>(inner, "realm"), false);
+ AjaxTextFieldPanel.class.cast(realm).enableJexlHelp();
+ } else {
+ realm = new AjaxDropDownChoicePanel<>(
+ "destinationRealm", "destinationRealm", new PropertyModel<String>(inner, "realm"), false);
+
+ ((AjaxDropDownChoicePanel<String>) realm).setChoices(CollectionUtils.collect(
+ new RealmRestClient().list(),
+ new Transformer<RealmTO, String>() {
+
+ @Override
+ public String transform(final RealmTO input) {
+ return input.getFullPath();
+ }
+ }, new ArrayList<String>()));
}
-
+ add(realm);
+
statusPanel = new StatusPanel("status", inner, statusModel, pageRef);
add(statusPanel.setEnabled(includeStatusPanel).
@@ -67,6 +88,11 @@ public class Details<T extends AnyTO> extends WizardStep {
setEnabled(includeStatusPanel).setVisible(includeStatusPanel).setRenderBodyOnly(true));
}
+ public Details<T> disableRealmSpecification() {
+ this.realm.setReadOnly(true);
+ return this;
+ }
+
protected AnnotatedBeanPanel getGeneralStatusInformation(final String id, final T anyTO) {
return new AnnotatedBeanPanel(id, anyTO);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/49b4f39c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupTemplateWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupTemplateWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupTemplateWizardBuilder.java
index cccc25f..13f0698 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupTemplateWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupTemplateWizardBuilder.java
@@ -31,12 +31,15 @@ public class GroupTemplateWizardBuilder extends GroupWizardBuilder implements Te
private static final long serialVersionUID = 6716803168859873877L;
+ private final TemplatableTO templatable;
+
public GroupTemplateWizardBuilder(
final TemplatableTO templatable,
final List<String> anyTypeClasses,
final GroupFormLayoutInfo formLayoutInfo,
final PageReference pageRef) {
super(null, anyTypeClasses, formLayoutInfo, pageRef);
+ this.templatable = templatable;
if (templatable.getTemplates().containsKey(AnyTypeKind.GROUP.name())) {
setItem(new GroupWrapper(GroupTO.class.cast(templatable.getTemplates().get(AnyTypeKind.GROUP.name()))));
@@ -50,6 +53,15 @@ public class GroupTemplateWizardBuilder extends GroupWizardBuilder implements Te
}
@Override
+ protected Details<GroupTO> addOptionalDetailsPanel(final AnyWrapper<GroupTO> modelObject) {
+ final Details<GroupTO> details = super.addOptionalDetailsPanel(modelObject);
+ if (templatable instanceof RealmTO) {
+ details.disableRealmSpecification();
+ }
+ return details;
+ }
+
+ @Override
public AjaxWizard<AnyWrapper<GroupTO>> build(final String id) {
return super.build(id, AjaxWizard.Mode.TEMPLATE);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/49b4f39c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java
index 875cca0..04f72dc 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java
@@ -32,7 +32,6 @@ import org.apache.syncope.common.lib.patch.GroupPatch;
import org.apache.syncope.common.lib.to.GroupTO;
import org.apache.syncope.common.lib.to.ProvisioningResult;
import org.apache.wicket.PageReference;
-import org.apache.wicket.extensions.wizard.WizardModel;
import org.apache.wicket.model.util.ListModel;
public class GroupWizardBuilder extends AnyWizardBuilder<GroupTO> implements GroupForm {
@@ -88,13 +87,11 @@ public class GroupWizardBuilder extends AnyWizardBuilder<GroupTO> implements Gro
}
@Override
- protected GroupWizardBuilder addOptionalDetailsPanel(
- final AnyWrapper<GroupTO> modelObject, final WizardModel wizardModel) {
- wizardModel.add(new GroupDetails(
+ protected Details<GroupTO> addOptionalDetailsPanel(final AnyWrapper<GroupTO> modelObject) {
+ return new GroupDetails(
GroupWrapper.class.cast(modelObject),
new ListModel<>(Collections.<StatusBean>emptyList()),
mode == AjaxWizard.Mode.TEMPLATE,
- modelObject.getInnerObject().getKey() != null, pageRef));
- return this;
+ modelObject.getInnerObject().getKey() != null, pageRef);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/49b4f39c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserTemplateWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserTemplateWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserTemplateWizardBuilder.java
index a795cd7..9873e35 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserTemplateWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserTemplateWizardBuilder.java
@@ -31,12 +31,15 @@ public class UserTemplateWizardBuilder extends UserWizardBuilder implements Temp
private static final long serialVersionUID = 6716803168859873877L;
+ private final TemplatableTO templatable;
+
public UserTemplateWizardBuilder(
final TemplatableTO templatable,
final List<String> anyTypeClasses,
final UserFormLayoutInfo formLayoutInfo,
final PageReference pageRef) {
super(null, anyTypeClasses, formLayoutInfo, pageRef);
+ this.templatable = templatable;
if (templatable.getTemplates().containsKey(AnyTypeKind.USER.name())) {
setItem(new UserWrapper(UserTO.class.cast(templatable.getTemplates().get(AnyTypeKind.USER.name()))));
@@ -50,6 +53,15 @@ public class UserTemplateWizardBuilder extends UserWizardBuilder implements Temp
}
@Override
+ protected Details<UserTO> addOptionalDetailsPanel(final AnyWrapper<UserTO> modelObject) {
+ final Details<UserTO> details = super.addOptionalDetailsPanel(modelObject);
+ if (templatable instanceof RealmTO) {
+ details.disableRealmSpecification();
+ }
+ return details;
+ }
+
+ @Override
public AjaxWizard<AnyWrapper<UserTO>> build(final String id) {
return super.build(id, AjaxWizard.Mode.TEMPLATE);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/49b4f39c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java
index 8d4d758..11078e7 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java
@@ -35,7 +35,6 @@ import org.apache.syncope.common.lib.patch.UserPatch;
import org.apache.syncope.common.lib.to.ProvisioningResult;
import org.apache.syncope.common.lib.to.UserTO;
import org.apache.wicket.PageReference;
-import org.apache.wicket.extensions.wizard.WizardModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.util.ListModel;
@@ -98,15 +97,13 @@ public class UserWizardBuilder extends AnyWizardBuilder<UserTO> implements UserF
}
@Override
- protected UserWizardBuilder addOptionalDetailsPanel(
- final AnyWrapper<UserTO> modelObject, final WizardModel wizardModel) {
+ protected Details<UserTO> addOptionalDetailsPanel(final AnyWrapper<UserTO> modelObject) {
- wizardModel.add(new UserDetails(
+ return new UserDetails(
UserWrapper.class.cast(modelObject), statusModel, mode == AjaxWizard.Mode.TEMPLATE,
modelObject.getInnerObject().getKey() != null,
UserFormLayoutInfo.class.cast(formLayoutInfo).isPasswordManagement(),
- pageRef));
- return this;
+ pageRef);
}
/**