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/06/27 10:18:40 UTC
[2/3] syncope git commit: [SYNCOPE-879] Fix
[SYNCOPE-879] Fix
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/6a5fa841
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/6a5fa841
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/6a5fa841
Branch: refs/heads/master
Commit: 6a5fa8416222ff60fb627a748fc9be9f948339e2
Parents: 21658a5
Author: Francesco Chicchiricc� <il...@apache.org>
Authored: Fri Jun 24 16:31:12 2016 +0200
Committer: Francesco Chicchiricc� <il...@apache.org>
Committed: Fri Jun 24 16:31:12 2016 +0200
----------------------------------------------------------------------
.../console/rest/ConnectorRestClient.java | 22 +++++++++
.../wizards/resources/ResourceMappingPanel.java | 49 ++++++++++----------
.../resources/ResourceProvisionPanel.java | 41 +++++-----------
3 files changed, 58 insertions(+), 54 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a5fa841/client/console/src/main/java/org/apache/syncope/client/console/rest/ConnectorRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/ConnectorRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/ConnectorRestClient.java
index 519b1c0..f6df407 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/ConnectorRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/ConnectorRestClient.java
@@ -24,6 +24,8 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.ws.rs.core.Response;
+import org.apache.commons.collections4.IterableUtils;
+import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.common.lib.SyncopeClientException;
@@ -64,6 +66,26 @@ public class ConnectorRestClient extends BaseRestClient {
return getObject(service, response.getLocation(), ConnInstanceTO.class);
}
+ public List<String> getExtAttrNames(
+ final String objectClass, final String connectorKey, final Set<ConnConfProperty> conf) {
+
+ ConnInstanceTO connInstanceTO = new ConnInstanceTO();
+ connInstanceTO.setKey(connectorKey);
+ connInstanceTO.getConf().addAll(conf);
+
+ // SYNCOPE-156: use provided info to give schema names (and type!) by ObjectClass
+ ConnIdObjectClassTO connIdObjectClass = IterableUtils.find(
+ buildObjectClassInfo(connInstanceTO, false), new Predicate<ConnIdObjectClassTO>() {
+
+ @Override
+ public boolean evaluate(final ConnIdObjectClassTO object) {
+ return object.getType().equalsIgnoreCase(objectClass);
+ }
+ });
+
+ return connIdObjectClass == null ? new ArrayList<String>() : connIdObjectClass.getAttributes();
+ }
+
/**
* Load an already existent connector by its name.
*
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a5fa841/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceMappingPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceMappingPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceMappingPanel.java
index 158b170..476cb5c 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceMappingPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceMappingPanel.java
@@ -38,6 +38,7 @@ import org.apache.syncope.client.console.commons.ConnIdSpecialAttributeName;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.rest.AnyTypeClassRestClient;
import org.apache.syncope.client.console.rest.AnyTypeRestClient;
+import org.apache.syncope.client.console.rest.ConnectorRestClient;
import org.apache.syncope.client.console.wicket.ajax.form.IndicatorAjaxFormComponentUpdatingBehavior;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksPanel;
@@ -67,6 +68,7 @@ import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.model.ResourceModel;
@@ -137,14 +139,6 @@ public class ResourceMappingPanel extends Panel {
*/
private final WebMarkupContainer mappingContainer;
- private MappingTO getMapping() {
- if (provisionTO.getMapping() == null) {
- provisionTO.setMapping(new MappingTO());
- }
-
- return provisionTO.getMapping();
- }
-
/**
* Attribute Mapping Panel.
*
@@ -164,16 +158,26 @@ public class ResourceMappingPanel extends Panel {
super(id);
setOutputMarkupId(true);
- this.provisionTO = provisionTO == null ? new ProvisionTO() : provisionTO;
- if (provisionTO == null) {
- getMapping().getItems().clear();
- getMapping().setConnObjectLink(null);
+ this.provisionTO = provisionTO;
+ if (provisionTO.getMapping() == null) {
+ provisionTO.setMapping(new MappingTO());
}
+ final LoadableDetachableModel<List<String>> extAttrNames = new LoadableDetachableModel<List<String>>() {
+
+ private static final long serialVersionUID = 5275935387613157437L;
+
+ @Override
+ protected List<String> load() {
+ return new ConnectorRestClient().getExtAttrNames(
+ provisionTO.getObjectClass(),
+ resourceTO.getConnector(),
+ resourceTO.getConfOverride());
+ }
+ };
+
this.mappingContainer = new WebMarkupContainer("mappingContainer");
this.mappingContainer.setOutputMarkupId(true);
- this.mappingContainer.setEnabled(provisionTO != null);
- this.mappingContainer.setVisible(provisionTO != null);
add(this.mappingContainer);
mappingContainer.add(new Label("intAttrNameInfo", Model.of()).add(new PopoverBehavior(
@@ -199,7 +203,7 @@ public class ResourceMappingPanel extends Panel {
passwordLabel = new Label("passwordLabel", new ResourceModel("password"));
mappingContainer.add(passwordLabel);
- Collections.sort(getMapping().getItems(), new Comparator<MappingItemTO>() {
+ Collections.sort(provisionTO.getMapping().getItems(), new Comparator<MappingItemTO>() {
@Override
public int compare(final MappingItemTO left, final MappingItemTO right) {
@@ -242,7 +246,7 @@ public class ResourceMappingPanel extends Panel {
}
});
- mappings = new ListView<MappingItemTO>("mappings", getMapping().getItems()) {
+ mappings = new ListView<MappingItemTO>("mappings", provisionTO.getMapping().getItems()) {
private static final long serialVersionUID = 4949588177564901031L;
@@ -273,10 +277,7 @@ public class ResourceMappingPanel extends Panel {
"extAttrName",
getString("extAttrName"),
new PropertyModel<String>(mapItem, "extAttrName"));
- extAttrName.setChoices(ResourceProvisionPanel.getExtAttrNames(
- ResourceMappingPanel.this.provisionTO.getObjectClass(),
- resourceTO.getConnector(),
- resourceTO.getConfOverride()));
+ extAttrName.setChoices(extAttrNames.getObject());
boolean required = !mapItem.isPassword();
extAttrName.setRequired(required).hideLabel();
@@ -355,14 +356,14 @@ public class ResourceMappingPanel extends Panel {
@Override
public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
int index = -1;
- for (int i = 0; i < getMapping().getItems().size() && index == -1; i++) {
- if (mapItem.equals(getMapping().getItems().get(i))) {
+ for (int i = 0; i < provisionTO.getMapping().getItems().size() && index == -1; i++) {
+ if (mapItem.equals(provisionTO.getMapping().getItems().get(i))) {
index = i;
}
}
if (index != -1) {
- getMapping().getItems().remove(index);
+ provisionTO.getMapping().getItems().remove(index);
item.getParent().removeAll();
target.add(ResourceMappingPanel.this);
}
@@ -440,7 +441,7 @@ public class ResourceMappingPanel extends Panel {
@Override
protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
- getMapping().getItems().add(new MappingItemTO());
+ provisionTO.getMapping().getItems().add(new MappingItemTO());
target.add(ResourceMappingPanel.this);
}
};
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a5fa841/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java
index e7debac..28f0346 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java
@@ -22,7 +22,6 @@ import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import java.util.Set;
import org.apache.commons.collections4.IterableUtils;
import org.apache.commons.collections4.IteratorUtils;
import org.apache.commons.collections4.Predicate;
@@ -43,13 +42,10 @@ import org.apache.syncope.client.console.wicket.markup.html.form.AjaxCheckBoxPan
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
import org.apache.syncope.client.console.wizards.AjaxWizard;
import org.apache.syncope.client.console.wizards.WizardMgtPanel;
-import org.apache.syncope.common.lib.to.ConnIdObjectClassTO;
-import org.apache.syncope.common.lib.to.ConnInstanceTO;
import org.apache.syncope.common.lib.to.MappingItemTO;
import org.apache.syncope.common.lib.to.ProvisionTO;
import org.apache.syncope.common.lib.to.ResourceTO;
import org.apache.syncope.common.lib.to.OrgUnitTO;
-import org.apache.syncope.common.lib.types.ConnConfProperty;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.syncope.common.rest.api.service.ResourceService;
import org.apache.wicket.PageReference;
@@ -67,6 +63,8 @@ public class ResourceProvisionPanel extends AbstractModalPanel<Serializable> {
private static final long serialVersionUID = -7982691107029848579L;
+ private final ConnectorRestClient connectorRestClient = new ConnectorRestClient();
+
private final ResourceTO resourceTO;
private Model<OrgUnitTO> baseModel;
@@ -77,6 +75,7 @@ public class ResourceProvisionPanel extends AbstractModalPanel<Serializable> {
final BaseModal<Serializable> modal,
final ResourceTO resourceTO,
final PageReference pageRef) {
+
super(modal, pageRef);
this.resourceTO = resourceTO;
@@ -117,10 +116,12 @@ public class ResourceProvisionPanel extends AbstractModalPanel<Serializable> {
getString("extAttrName"),
new PropertyModel<String>(baseModel.getObject(), "extAttrName"),
false);
- extAttrName.setChoices(ResourceProvisionPanel.getExtAttrNames(
- resourceTO.getOrgUnit() == null ? StringUtils.EMPTY : resourceTO.getOrgUnit().getObjectClass(),
- resourceTO.getConnector(),
- resourceTO.getConfOverride()));
+ if (resourceTO.getOrgUnit() != null) {
+ extAttrName.setChoices(connectorRestClient.getExtAttrNames(
+ resourceTO.getOrgUnit().getObjectClass(),
+ resourceTO.getConnector(),
+ resourceTO.getConfOverride()));
+ }
realmsProvisionContainer.add(extAttrName.addRequiredLabel());
objectClass.getField().add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_BLUR) {
@@ -129,7 +130,7 @@ public class ResourceProvisionPanel extends AbstractModalPanel<Serializable> {
@Override
protected void onUpdate(final AjaxRequestTarget target) {
- extAttrName.setChoices(ResourceProvisionPanel.getExtAttrNames(
+ extAttrName.setChoices(connectorRestClient.getExtAttrNames(
objectClass.getModelObject(),
resourceTO.getConnector(),
resourceTO.getConfOverride()));
@@ -281,7 +282,7 @@ public class ResourceProvisionPanel extends AbstractModalPanel<Serializable> {
@Override
public void onClick(final AjaxRequestTarget target, final ProvisionTO provisionTO) {
resourceTO.getProvisions().remove(provisionTO);
- send(ResourceProvisionPanel.this, Broadcast.DEPTH, new ListViewReload<Serializable>(target));
+ send(ResourceProvisionPanel.this, Broadcast.DEPTH, new ListViewReload<>(target));
}
}, ActionLink.ActionType.DELETE, StandardEntitlement.RESOURCE_DELETE);
@@ -334,28 +335,8 @@ public class ResourceProvisionPanel extends AbstractModalPanel<Serializable> {
((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
}
- protected static List<String> getExtAttrNames(
- final String objectClass, final String connectorKey, final Set<ConnConfProperty> conf) {
- ConnInstanceTO connInstanceTO = new ConnInstanceTO();
- connInstanceTO.setKey(connectorKey);
- connInstanceTO.getConf().addAll(conf);
-
- // SYNCOPE-156: use provided info to give schema names (and type!) by ObjectClass
- ConnIdObjectClassTO connIdObjectClass = IterableUtils.find(new ConnectorRestClient().
- buildObjectClassInfo(connInstanceTO, false), new Predicate<ConnIdObjectClassTO>() {
-
- @Override
- public boolean evaluate(final ConnIdObjectClassTO object) {
- return object.getType().equalsIgnoreCase(objectClass);
- }
- });
-
- return connIdObjectClass == null ? new ArrayList<String>() : connIdObjectClass.getAttributes();
- }
-
@Override
public void onEvent(final IEvent<?> event) {
-
if (event.getPayload() instanceof AjaxWizard.NewItemActionEvent) {
aboutRealmProvison.setVisible(false);
((AjaxWizard.NewItemEvent) event.getPayload()).getTarget().add(aboutRealmProvison);