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 2017/10/17 08:34:35 UTC
[2/2] syncope git commit: [SYNCOPE-1138] Replacing left and right
with otherEnd
[SYNCOPE-1138] Replacing left and right with otherEnd
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/1d74b79c
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/1d74b79c
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/1d74b79c
Branch: refs/heads/master
Commit: 1d74b79c26f38c33675b83e0cd7610c466210207
Parents: fdc991aa
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Tue Oct 17 09:50:02 2017 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Tue Oct 17 10:34:27 2017 +0200
----------------------------------------------------------------------
.../console/wizards/any/AbstractAttrs.java | 2 +-
.../client/console/wizards/any/Groups.java | 4 +--
.../console/wizards/any/Relationships.java | 32 ++++++++---------
.../any/Relationships$Specification.html | 2 +-
.../app/js/controllers/UserController.js | 4 +--
.../resources/app/js/directives/groups.js | 4 +--
.../resources/app/js/filters/propsFilter.js | 11 +++---
.../META-INF/resources/app/views/groups.html | 2 +-
.../syncope/common/lib/EntityTOUtils.java | 5 ++-
.../syncope/common/lib/to/AnyObjectTO.java | 4 +--
.../common/lib/to/GroupableRelatableTO.java | 2 +-
.../syncope/common/lib/to/MembershipTO.java | 35 +++++-------------
.../syncope/common/lib/to/RelationshipTO.java | 28 +++++++--------
.../apache/syncope/common/lib/to/UserTO.java | 4 +--
.../core/persistence/api/dao/AnyObjectDAO.java | 5 +--
.../persistence/jpa/dao/JPAAnyObjectDAO.java | 27 ++++++++++----
.../jpa/entity/AbstractGroupableRelatable.java | 8 -----
.../jpa/entity/anyobject/JPAAnyObject.java | 12 +++++++
.../persistence/jpa/entity/user/JPAUser.java | 11 ++++++
.../test/resources/domains/MasterContent.xml | 2 +-
.../java/data/AbstractAnyDataBinder.java | 7 ++--
.../java/data/AnyObjectDataBinderImpl.java | 38 +++++++++++---------
.../java/data/UserDataBinderImpl.java | 19 +++++-----
.../java/job/report/UserReportlet.java | 10 +++---
.../provisioning/java/utils/TemplateUtils.java | 4 +--
.../client/ElasticsearchUtils.java | 7 ++--
.../syncope/fit/core/AnyObjectITCase.java | 2 +-
.../apache/syncope/fit/core/PullTaskITCase.java | 2 +-
.../syncope/fit/core/UserWorkflowITCase.java | 4 +--
29 files changed, 153 insertions(+), 144 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AbstractAttrs.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AbstractAttrs.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AbstractAttrs.java
index 49630fe..2e77c8c 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AbstractAttrs.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AbstractAttrs.java
@@ -205,7 +205,7 @@ public abstract class AbstractAttrs<S extends AbstractSchemaTO> extends WizardSt
protected List<String> getMembershipAuxClasses(final MembershipTO membershipTO, final String anyType) {
try {
- final GroupTO groupTO = groupRestClient.read(membershipTO.getRightKey());
+ final GroupTO groupTO = groupRestClient.read(membershipTO.getGroupKey());
return groupTO.getTypeExtension(anyType).get().getAuxClasses();
} catch (Exception e) {
return Collections.emptyList();
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
index fe9e226..eb99715 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
@@ -268,8 +268,8 @@ public class Groups extends WizardStep implements ICondition {
// set group names in membership TOs and remove membership not assignable
List<MembershipTO> toBeRemoved = new ArrayList<>();
GroupableRelatableTO.class.cast(anyTO).getMemberships().forEach(membership -> {
- if (assignedGroups.containsKey(membership.getRightKey())) {
- membership.setGroupName(assignedGroups.get(membership.getRightKey()).getName());
+ if (assignedGroups.containsKey(membership.getGroupKey())) {
+ membership.setGroupName(assignedGroups.get(membership.getGroupKey()).getName());
} else {
toBeRemoved.add(membership);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java
index 2c333b1..7d64b7d 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java
@@ -255,15 +255,15 @@ public class Relationships extends WizardStep implements ICondition {
filter(anyType -> anyType.getKind() != AnyTypeKind.GROUP
&& anyType.getKind() != AnyTypeKind.USER).collect(Collectors.toList());
- final AjaxDropDownChoicePanel<AnyTypeTO> rightType = new AjaxDropDownChoicePanel<>(
- "rightType", "rightType", new PropertyModel<AnyTypeTO>(rel, "rightType") {
+ final AjaxDropDownChoicePanel<AnyTypeTO> otherType = new AjaxDropDownChoicePanel<>(
+ "otherType", "otherType", new PropertyModel<AnyTypeTO>(rel, "otherType") {
private static final long serialVersionUID = -5861057041758169508L;
@Override
public AnyTypeTO getObject() {
for (AnyTypeTO obj : availableTypes) {
- if (obj.getKey().equals(rel.getRightType())) {
+ if (obj.getKey().equals(rel.getOtherEndType())) {
return obj;
}
}
@@ -272,11 +272,11 @@ public class Relationships extends WizardStep implements ICondition {
@Override
public void setObject(final AnyTypeTO object) {
- rel.setRightType(object == null ? null : object.getKey());
+ rel.setOtherEndType(object == null ? null : object.getKey());
}
}, false);
- rightType.setChoices(availableTypes);
- rightType.setChoiceRenderer(new IChoiceRenderer<AnyTypeTO>() {
+ otherType.setChoices(availableTypes);
+ otherType.setChoiceRenderer(new IChoiceRenderer<AnyTypeTO>() {
private static final long serialVersionUID = -734743540442190178L;
@@ -296,9 +296,9 @@ public class Relationships extends WizardStep implements ICondition {
filter(anyTypeTO -> id.equals(anyTypeTO.getKey())).findAny().orElse(null);
}
});
- // enable "rightType" dropdown only if "type" option is selected - SYNCOPE-1140
- rightType.setEnabled(false);
- add(rightType);
+ // enable "otherType" dropdown only if "type" option is selected - SYNCOPE-1140
+ otherType.setEnabled(false);
+ add(otherType);
final WebMarkupContainer container = new WebMarkupContainer("searchPanelContainer");
container.setOutputMarkupId(true);
@@ -315,21 +315,21 @@ public class Relationships extends WizardStep implements ICondition {
protected void onUpdate(final AjaxRequestTarget target) {
Fragment emptyFragment = new Fragment("searchPanel", "emptyFragment", Specification.this);
container.addOrReplace(emptyFragment.setRenderBodyOnly(true));
- rightType.setModelObject(null);
- // enable "rightType" dropdown only if "type" option is selected - SYNCOPE-1140
- rightType.setEnabled(type.getModelObject() != null && !type.getModelObject().isEmpty());
- target.add(rightType);
+ otherType.setModelObject(null);
+ // enable "otherType" dropdown only if "type" option is selected - SYNCOPE-1140
+ otherType.setEnabled(type.getModelObject() != null && !type.getModelObject().isEmpty());
+ target.add(otherType);
target.add(container);
}
});
- rightType.getField().add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
+ otherType.getField().add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
private static final long serialVersionUID = -1107858522700306810L;
@Override
protected void onUpdate(final AjaxRequestTarget target) {
- final AnyTypeTO anyType = rightType.getModelObject();
+ final AnyTypeTO anyType = otherType.getModelObject();
if (anyType == null) {
Fragment emptyFragment = new Fragment("searchPanel", "emptyFragment", Specification.this);
container.addOrReplace(emptyFragment.setRenderBodyOnly(true));
@@ -371,7 +371,7 @@ public class Relationships extends WizardStep implements ICondition {
getPayload()).getTarget();
AnyTO right = AnySelectionDirectoryPanel.ItemSelection.class.cast(event.getPayload()).getSelection();
- rel.setRightKey(right.getKey());
+ rel.setOtherEndKey(right.getKey());
Relationships.this.addNewRelationships(rel);
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Relationships$Specification.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Relationships$Specification.html b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Relationships$Specification.html
index cce2c7c..83ab31d 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Relationships$Specification.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Relationships$Specification.html
@@ -25,7 +25,7 @@ under the License.
</div>
<div class="form-group">
- <span wicket:id="rightType"/>
+ <span wicket:id="otherType"/>
</div>
<div wicket:id="searchPanelContainer">
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/client/enduser/src/main/resources/META-INF/resources/app/js/controllers/UserController.js
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/js/controllers/UserController.js b/client/enduser/src/main/resources/META-INF/resources/app/js/controllers/UserController.js
index cfc57ed..acf8a06 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/js/controllers/UserController.js
+++ b/client/enduser/src/main/resources/META-INF/resources/app/js/controllers/UserController.js
@@ -221,7 +221,7 @@ angular.module("self").controller("UserController", ['$scope', '$rootScope', '$l
GroupService.getGroups(realm).then(function (response) {
$scope.dynamicForm.groups = new Array();
for (var i in response) {
- $scope.dynamicForm.groups.push({"rightKey": response[i].key, "groupName": response[i].name});
+ $scope.dynamicForm.groups.push({"groupKey": response[i].key, "groupName": response[i].name});
}
$scope.dynamicForm.groups.sort(function (a, b) {
var x = a.groupName;
@@ -284,7 +284,7 @@ angular.module("self").controller("UserController", ['$scope', '$rootScope', '$l
for (var index in $scope.user.memberships) {
$scope.dynamicForm.selectedGroups.push(
{
- "rightKey": $scope.user.memberships[index]["rightKey"].toString(),
+ "groupKey": $scope.user.memberships[index]["groupKey"].toString(),
"groupName": $scope.user.memberships[index]["groupName"]
});
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/client/enduser/src/main/resources/META-INF/resources/app/js/directives/groups.js
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/js/directives/groups.js b/client/enduser/src/main/resources/META-INF/resources/app/js/directives/groups.js
index 330b1a4..8cb89a9 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/js/directives/groups.js
+++ b/client/enduser/src/main/resources/META-INF/resources/app/js/directives/groups.js
@@ -33,10 +33,10 @@ angular.module('self')
$scope.user.memberships = new Array();
}
};
-
+
$scope.addGroup = function (item, model) {
var membership = item;
- $scope.user.memberships.push({"rightKey": membership.rightKey, "groupName": membership.groupName});
+ $scope.user.memberships.push({"groupKey": membership.groupKey, "groupName": membership.groupName});
$scope.$emit("groupAdded", membership.groupName);
};
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/client/enduser/src/main/resources/META-INF/resources/app/js/filters/propsFilter.js
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/js/filters/propsFilter.js b/client/enduser/src/main/resources/META-INF/resources/app/js/filters/propsFilter.js
index fe23dce..51e0159 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/js/filters/propsFilter.js
+++ b/client/enduser/src/main/resources/META-INF/resources/app/js/filters/propsFilter.js
@@ -29,23 +29,22 @@
angular.module("self")
.filter('propsFilter', function () {
return function (items, props) {
- var out = [];
+ var out = [];
if (items && items.length && props.selected && props.selected.length) {
- var selected = props.selected;
+ var selected = props.selected;
for (var i = 0; i < items.length; i++) {
var item = items[i], itemMisses = true;
for (var j = 0; j < selected.length; j++) {
- if (item.rightKey == selected[j].rightKey) {
+ if (item.groupKey == selected[j].groupKey) {
itemMisses = false;
break;
}
}
- if(itemMisses){
+ if (itemMisses) {
out.push(item);
}
}
- }
- else{
+ } else {
out = items;
}
return out;
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/client/enduser/src/main/resources/META-INF/resources/app/views/groups.html
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/views/groups.html b/client/enduser/src/main/resources/META-INF/resources/app/views/groups.html
index ef77ae1..38e6a29 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/views/groups.html
+++ b/client/enduser/src/main/resources/META-INF/resources/app/views/groups.html
@@ -25,7 +25,7 @@ under the License.
{{$item.groupName}}
</ui-select-match>
<ui-select-choices repeat="group in dynamicForm.groups | propsFilter: {selected: dynamicForm.selectedGroups}
- track by group.rightKey" class="ui-select-choices">
+ track by group.groupKey" class="ui-select-choices">
<div id="{{group.groupName}}" ng-bind-html="group.groupName | highlight: $select.search"></div>
</ui-select-choices>
</ui-select>
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/common/lib/src/main/java/org/apache/syncope/common/lib/EntityTOUtils.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/EntityTOUtils.java b/common/lib/src/main/java/org/apache/syncope/common/lib/EntityTOUtils.java
index 38f5202..e5b2bee 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/EntityTOUtils.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/EntityTOUtils.java
@@ -40,15 +40,14 @@ public final class EntityTOUtils {
final Collection<RelationshipTO> relationships) {
Map<Pair<String, String>, RelationshipTO> result = new HashMap<>(relationships.size());
- relationships.forEach(
- relationship -> result.put(Pair.of(relationship.getType(), relationship.getRightKey()), relationship));
+ relationships.forEach(rel -> result.put(Pair.of(rel.getType(), rel.getOtherEndKey()), rel));
return Collections.unmodifiableMap(result);
}
public static Map<String, MembershipTO> buildMembershipMap(final Collection<MembershipTO> memberships) {
Map<String, MembershipTO> result = new HashMap<>(memberships.size());
- memberships.forEach(membership -> result.put(membership.getRightKey(), membership));
+ memberships.forEach(memb -> result.put(memb.getGroupKey(), memb));
return Collections.unmodifiableMap(result);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java
index 7641687..61d8eb1 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java
@@ -52,9 +52,9 @@ public class AnyObjectTO extends AnyTO implements GroupableRelatableTO {
@JsonIgnore
@Override
- public Optional<RelationshipTO> getRelationship(final String type, final String rightKey) {
+ public Optional<RelationshipTO> getRelationship(final String type, final String otherKey) {
return relationships.stream().filter(
- relationship -> type.equals(relationship.getType()) && rightKey.equals(relationship.getRightKey())).
+ relationship -> type.equals(relationship.getType()) && otherKey.equals(relationship.getOtherEndKey())).
findFirst();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupableRelatableTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupableRelatableTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupableRelatableTO.java
index 37fcb3a..85ccb18 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupableRelatableTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupableRelatableTO.java
@@ -29,7 +29,7 @@ public interface GroupableRelatableTO {
List<MembershipTO> getDynMemberships();
- Optional<RelationshipTO> getRelationship(String type, String rightKey);
+ Optional<RelationshipTO> getRelationship(String type, String otherKey);
List<RelationshipTO> getRelationships();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/common/lib/src/main/java/org/apache/syncope/common/lib/to/MembershipTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/MembershipTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/MembershipTO.java
index 9163aba..c606851 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/MembershipTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/MembershipTO.java
@@ -27,11 +27,11 @@ import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
-import org.apache.syncope.common.lib.types.AnyTypeKind;
+import org.apache.syncope.common.lib.AbstractBaseBean;
@XmlRootElement(name = "membership")
@XmlType
-public class MembershipTO extends RelationshipTO implements AttributableTO {
+public class MembershipTO extends AbstractBaseBean implements AttributableTO {
private static final long serialVersionUID = 5992828670273935861L;
@@ -40,12 +40,12 @@ public class MembershipTO extends RelationshipTO implements AttributableTO {
private final MembershipTO instance = new MembershipTO();
public Builder group(final String groupKey) {
- instance.setRightKey(groupKey);
+ instance.setGroupKey(groupKey);
return this;
}
public Builder group(final String groupKey, final String groupName) {
- instance.setRightKey(groupKey);
+ instance.setGroupKey(groupKey);
instance.setGroupName(groupName);
return this;
}
@@ -55,6 +55,8 @@ public class MembershipTO extends RelationshipTO implements AttributableTO {
}
}
+ private String groupKey;
+
private String groupName;
private final Set<AttrTO> plainAttrs = new HashSet<>();
@@ -63,33 +65,12 @@ public class MembershipTO extends RelationshipTO implements AttributableTO {
private final Set<AttrTO> virAttrs = new HashSet<>();
- @Override
- public String getType() {
- return "Membership";
- }
-
- @Override
- public void setType(final String relationshipType) {
- // ignore
- }
-
- @Override
- public String getRightType() {
- return AnyTypeKind.GROUP.name();
- }
-
- @Override
- public void setRightType(final String rightType) {
- // ignore
- }
-
- @JsonIgnore
public String getGroupKey() {
- return getRightKey();
+ return groupKey;
}
public void setGroupKey(final String groupKey) {
- setRightKey(groupKey);
+ this.groupKey = groupKey;
}
public String getGroupName() {
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/common/lib/src/main/java/org/apache/syncope/common/lib/to/RelationshipTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/RelationshipTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/RelationshipTO.java
index fc5de4f..015e18c 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/RelationshipTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/RelationshipTO.java
@@ -2,7 +2,7 @@
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
+ * regarding copyother ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
@@ -37,9 +37,9 @@ public class RelationshipTO extends AbstractBaseBean {
return this;
}
- public Builder right(final String rightType, final String rightKey) {
- instance.setRightType(rightType);
- instance.setRightKey(rightKey);
+ public Builder otherEnd(final String otherEndType, final String otherEndKey) {
+ instance.setOtherEndType(otherEndType);
+ instance.setOtherEndKey(otherEndKey);
return this;
}
@@ -50,9 +50,9 @@ public class RelationshipTO extends AbstractBaseBean {
private String type;
- private String rightType;
+ private String otherEndType;
- private String rightKey;
+ private String otherEndKey;
public String getType() {
return type;
@@ -62,20 +62,20 @@ public class RelationshipTO extends AbstractBaseBean {
this.type = type;
}
- public String getRightType() {
- return rightType;
+ public String getOtherEndType() {
+ return otherEndType;
}
- public void setRightType(final String rightType) {
- this.rightType = rightType;
+ public void setOtherEndType(final String otherEndType) {
+ this.otherEndType = otherEndType;
}
- public String getRightKey() {
- return rightKey;
+ public String getOtherEndKey() {
+ return otherEndKey;
}
- public void setRightKey(final String rightKey) {
- this.rightKey = rightKey;
+ public void setOtherEndKey(final String otherEndKey) {
+ this.otherEndKey = otherEndKey;
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/common/lib/src/main/java/org/apache/syncope/common/lib/to/UserTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/UserTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/UserTO.java
index 877b866..a5add3a 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/UserTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/UserTO.java
@@ -195,9 +195,9 @@ public class UserTO extends AnyTO implements GroupableRelatableTO {
@JsonIgnore
@Override
- public Optional<RelationshipTO> getRelationship(final String type, final String rightKey) {
+ public Optional<RelationshipTO> getRelationship(final String type, final String otherKey) {
return relationships.stream().filter(
- relationship -> type.equals(relationship.getType()) && rightKey.equals(relationship.getRightKey())).
+ relationship -> type.equals(relationship.getType()) && otherKey.equals(relationship.getOtherEndKey())).
findFirst();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyObjectDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyObjectDAO.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyObjectDAO.java
index 518575b..f001204 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyObjectDAO.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyObjectDAO.java
@@ -23,8 +23,9 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.lang3.tuple.Pair;
+import org.apache.syncope.core.persistence.api.entity.Any;
import org.apache.syncope.core.persistence.api.entity.AnyType;
-import org.apache.syncope.core.persistence.api.entity.anyobject.ARelationship;
+import org.apache.syncope.core.persistence.api.entity.Relationship;
import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject;
import org.apache.syncope.core.persistence.api.entity.group.Group;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
@@ -45,7 +46,7 @@ public interface AnyObjectDAO extends AnyDAO<AnyObject> {
List<Group> findDynGroups(String key);
- List<ARelationship> findAllRelationships(AnyObject anyObject);
+ List<Relationship<Any<?>, Any<?>>> findAllRelationships(AnyObject anyObject);
Collection<Group> findAllGroups(AnyObject anyObject);
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java
index 01c1c29..972a0fb 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java
@@ -39,9 +39,11 @@ import org.apache.syncope.core.spring.security.DelegatedAdministrationException;
import org.apache.syncope.core.persistence.api.dao.AnyObjectDAO;
import org.apache.syncope.core.persistence.api.dao.GroupDAO;
import org.apache.syncope.core.persistence.api.dao.UserDAO;
+import org.apache.syncope.core.persistence.api.entity.Any;
import org.apache.syncope.core.persistence.api.entity.AnyType;
import org.apache.syncope.core.persistence.api.entity.AnyUtils;
import org.apache.syncope.core.persistence.api.entity.Realm;
+import org.apache.syncope.core.persistence.api.entity.Relationship;
import org.apache.syncope.core.persistence.api.entity.anyobject.ARelationship;
import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject;
import org.apache.syncope.core.persistence.api.entity.group.Group;
@@ -166,13 +168,26 @@ public class JPAAnyObjectDAO extends AbstractAnyDAO<AnyObject> implements AnyObj
}
@Override
- public List<ARelationship> findAllRelationships(final AnyObject anyObject) {
- TypedQuery<ARelationship> query = entityManager().createQuery(
- "SELECT e FROM " + JPAARelationship.class.getSimpleName()
- + " e WHERE e.rightEnd=:anyObject OR e.leftEnd=:anyObject", ARelationship.class);
- query.setParameter("anyObject", anyObject);
+ public List<Relationship<Any<?>, Any<?>>> findAllRelationships(final AnyObject anyObject) {
+ List<Relationship<Any<?>, Any<?>>> result = new ArrayList<>();
- return query.getResultList();
+ @SuppressWarnings("unchecked")
+ TypedQuery<Relationship<Any<?>, Any<?>>> aquery =
+ (TypedQuery<Relationship<Any<?>, Any<?>>>) entityManager().createQuery(
+ "SELECT e FROM " + JPAARelationship.class.getSimpleName()
+ + " e WHERE e.rightEnd=:anyObject OR e.leftEnd=:anyObject");
+ aquery.setParameter("anyObject", anyObject);
+ result.addAll(aquery.getResultList());
+
+ @SuppressWarnings("unchecked")
+ TypedQuery<Relationship<Any<?>, Any<?>>> uquery =
+ (TypedQuery<Relationship<Any<?>, Any<?>>>) entityManager().createQuery(
+ "SELECT e FROM " + JPAURelationship.class.getSimpleName()
+ + " e WHERE e.rightEnd=:anyObject");
+ uquery.setParameter("anyObject", anyObject);
+ result.addAll(uquery.getResultList());
+
+ return result;
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractGroupableRelatable.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractGroupableRelatable.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractGroupableRelatable.java
index 4fe46e6..160ae07 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractGroupableRelatable.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractGroupableRelatable.java
@@ -91,14 +91,6 @@ public abstract class AbstractGroupableRelatable<
}
@Override
- public Optional<? extends REL> getRelationship(final RelationshipType relationshipType, final String otherEndKey) {
- return getRelationships().stream().filter(relationship
- -> otherEndKey != null && otherEndKey.equals(relationship.getRightEnd().getKey())
- && ((relationshipType == null && relationship.getType() == null)
- || (relationshipType != null && relationshipType.equals(relationship.getType())))).findFirst();
- }
-
- @Override
public Collection<? extends REL> getRelationships(final RelationshipType relationshipType) {
return getRelationships().stream().filter(relationship
-> relationshipType != null && relationshipType.equals(relationship.getType())).
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAnyObject.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAnyObject.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAnyObject.java
index 32bd4c0..d72e36a 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAnyObject.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAnyObject.java
@@ -20,6 +20,7 @@ package org.apache.syncope.core.persistence.jpa.entity.anyobject;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
import javax.persistence.Cacheable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@@ -35,6 +36,7 @@ import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import org.apache.syncope.core.persistence.api.entity.AnyType;
import org.apache.syncope.core.persistence.api.entity.AnyTypeClass;
+import org.apache.syncope.core.persistence.api.entity.RelationshipType;
import org.apache.syncope.core.persistence.api.entity.anyobject.AMembership;
import org.apache.syncope.core.persistence.api.entity.anyobject.APlainAttr;
import org.apache.syncope.core.persistence.api.entity.anyobject.ARelationship;
@@ -152,6 +154,16 @@ public class JPAAnyObject
}
@Override
+ public Optional<? extends ARelationship> getRelationship(
+ final RelationshipType relationshipType, final String otherEndKey) {
+
+ return getRelationships().stream().filter(relationship -> relationshipType.equals(relationship.getType())
+ && otherEndKey != null
+ && (otherEndKey.equals(relationship.getLeftEnd().getKey())
+ || otherEndKey.equals(relationship.getRightEnd().getKey()))).findFirst();
+ }
+
+ @Override
public List<? extends ARelationship> getRelationships() {
return relationships;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java
index dcf205e..8168f37 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
+import java.util.Optional;
import javax.persistence.Basic;
import javax.persistence.Cacheable;
import javax.persistence.CascadeType;
@@ -58,6 +59,7 @@ import org.apache.syncope.core.spring.ApplicationContextProvider;
import org.apache.syncope.core.persistence.api.dao.AnyTypeDAO;
import org.apache.syncope.core.persistence.api.entity.AnyType;
import org.apache.syncope.core.persistence.api.entity.AnyTypeClass;
+import org.apache.syncope.core.persistence.api.entity.RelationshipType;
import org.apache.syncope.core.persistence.api.entity.Role;
import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
@@ -511,6 +513,15 @@ public class JPAUser
}
@Override
+ public Optional<? extends URelationship> getRelationship(
+ final RelationshipType relationshipType, final String otherEndKey) {
+
+ return getRelationships().stream().filter(relationship -> relationshipType.equals(relationship.getType())
+ && otherEndKey != null && otherEndKey.equals(relationship.getRightEnd().getKey())).
+ findFirst();
+ }
+
+ @Override
public List<? extends URelationship> getRelationships() {
return relationships;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
index 2a84a81..fd3c0c4 100644
--- a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
+++ b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
@@ -1180,7 +1180,7 @@ under the License.
jobDelegate_id="PullJobDelegate"/>
<AnyTemplatePullTask id="3a6173a9-8c34-4e37-b3b1-0c2ea385fac0"
pullTask_id="c41b9b71-9bfa-4f90-89f2-84787def4c5c" anyType_id="USER"
- template='{"@class":"org.apache.syncope.common.lib.to.UserTO","creator":null,"creationDate":null,"lastModifier":null,"lastChangeDate":null,"key":null,"type":"USER","realm":null,"status":null,"password":null,"token":null,"tokenExpireTime":null,"username":null,"lastLoginDate":null,"changePwdDate":null,"failedLogins":null,"securityQuestion":null,"securityAnswer":null,"auxClasses":["csv"],"derAttrs":[{"schema":"cn","values":[""]}],"virAttrs":[],"resources":["resource-testdb"],"relationships":[],"memberships":[{"rightType":"GROUP","rightKey":"f779c0d4-633b-4be5-8f57-32eb478a3ca5","groupName":null}],"dynMemberships":[],"roles":[],"dynRoles":[],"plainAttrs":[{"schema":"ctype","values":["email == 'test8@syncope.apache.org'? 'TYPE_8': 'TYPE_OTHER'"]}]}'/>
+ template='{"@class":"org.apache.syncope.common.lib.to.UserTO","creator":null,"creationDate":null,"lastModifier":null,"lastChangeDate":null,"key":null,"type":"USER","realm":null,"status":null,"password":null,"token":null,"tokenExpireTime":null,"username":null,"lastLoginDate":null,"changePwdDate":null,"failedLogins":null,"securityQuestion":null,"securityAnswer":null,"auxClasses":["csv"],"derAttrs":[{"schema":"cn","values":[""]}],"virAttrs":[],"resources":["resource-testdb"],"relationships":[],"memberships":[{"groupKey":"f779c0d4-633b-4be5-8f57-32eb478a3ca5","groupName":null}],"dynMemberships":[],"roles":[],"dynRoles":[],"plainAttrs":[{"schema":"ctype","values":["email == 'test8@syncope.apache.org'? 'TYPE_8': 'TYPE_OTHER'"]}]}'/>
<AnyTemplatePullTask id="b3772d66-ec06-4133-bf38-b3273845ac5b"
pullTask_id="c41b9b71-9bfa-4f90-89f2-84787def4c5c" anyType_id="GROUP"
template='{"@class":"org.apache.syncope.common.lib.to.GroupTO","creator":null,"creationDate":null,"lastModifier":null,"lastChangeDate":null,"key":null,"type":"GROUP","realm":null,"status":null,"name":null,"userOwner":null,"groupOwner":null,"udynMembershipCond":null,"auxClasses":[],"derAttrs":[],"virAttrs":[],"resources":[],"plainAttrs":[]}'/>
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java
index 5387a75..0bc577a 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java
@@ -66,9 +66,7 @@ import org.apache.syncope.core.persistence.api.entity.PlainAttr;
import org.apache.syncope.core.persistence.api.entity.PlainAttrValue;
import org.apache.syncope.core.persistence.api.entity.PlainSchema;
import org.apache.syncope.core.persistence.api.entity.Realm;
-import org.apache.syncope.core.persistence.api.entity.Relationship;
import org.apache.syncope.core.persistence.api.entity.VirSchema;
-import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.resource.MappingItem;
import org.apache.syncope.core.persistence.api.entity.resource.Provision;
@@ -593,10 +591,9 @@ abstract class AbstractAnyDataBinder {
});
}
- protected RelationshipTO getRelationshipTO(final Relationship<? extends Any<?>, AnyObject> relationship) {
+ protected RelationshipTO getRelationshipTO(final String relationshipType, final Any<?> otherEnd) {
return new RelationshipTO.Builder().
- type(relationship.getType().getKey()).
- right(relationship.getRightEnd().getType().getKey(), relationship.getRightEnd().getKey()).
+ type(relationshipType).otherEnd(otherEnd.getType().getKey(), otherEnd.getKey()).
build();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyObjectDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyObjectDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyObjectDataBinderImpl.java
index c677063..729cf2c 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyObjectDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyObjectDataBinderImpl.java
@@ -101,7 +101,11 @@ public class AnyObjectDataBinderImpl extends AbstractAnyDataBinder implements An
// relationships
anyObjectTO.getRelationships().addAll(
- anyObject.getRelationships().stream().map(relationship -> getRelationshipTO(relationship)).
+ anyObject.getRelationships().stream().map(relationship -> getRelationshipTO(
+ relationship.getType().getKey(),
+ relationship.getLeftEnd().getKey().equals(anyObject.getKey())
+ ? relationship.getRightEnd()
+ : relationship.getLeftEnd())).
collect(Collectors.toList()));
// memberships
@@ -161,19 +165,19 @@ public class AnyObjectDataBinderImpl extends AbstractAnyDataBinder implements An
if (anyObject.getRealm() != null) {
// relationships
anyObjectTO.getRelationships().forEach(relationshipTO -> {
- if (StringUtils.isBlank(relationshipTO.getRightType())
- || AnyTypeKind.USER.name().equals(relationshipTO.getRightType())
- || AnyTypeKind.GROUP.name().equals(relationshipTO.getRightType())) {
+ if (StringUtils.isBlank(relationshipTO.getOtherEndType())
+ || AnyTypeKind.USER.name().equals(relationshipTO.getOtherEndType())
+ || AnyTypeKind.GROUP.name().equals(relationshipTO.getOtherEndType())) {
SyncopeClientException invalidAnyType =
SyncopeClientException.build(ClientExceptionType.InvalidAnyType);
invalidAnyType.getElements().add(AnyType.class.getSimpleName()
- + " not allowed for relationship: " + relationshipTO.getRightType());
+ + " not allowed for relationship: " + relationshipTO.getOtherEndType());
scce.addException(invalidAnyType);
} else {
- AnyObject otherEnd = anyObjectDAO.find(relationshipTO.getRightKey());
+ AnyObject otherEnd = anyObjectDAO.find(relationshipTO.getOtherEndKey());
if (otherEnd == null) {
- LOG.debug("Ignoring invalid anyObject " + relationshipTO.getRightKey());
+ LOG.debug("Ignoring invalid anyObject " + relationshipTO.getOtherEndKey());
} else if (anyObject.getRealm().getFullPath().startsWith(otherEnd.getRealm().getFullPath())) {
RelationshipType relationshipType = relationshipTypeDAO.find(relationshipTO.getType());
if (relationshipType == null) {
@@ -199,12 +203,12 @@ public class AnyObjectDataBinderImpl extends AbstractAnyDataBinder implements An
// memberships
anyObjectTO.getMemberships().forEach(membershipTO -> {
- Group group = membershipTO.getRightKey() == null
+ Group group = membershipTO.getGroupKey() == null
? groupDAO.findByName(membershipTO.getGroupName())
- : groupDAO.find(membershipTO.getRightKey());
+ : groupDAO.find(membershipTO.getGroupKey());
if (group == null) {
LOG.debug("Ignoring invalid group "
- + membershipTO.getRightKey() + " / " + membershipTO.getGroupName());
+ + membershipTO.getGroupKey() + " / " + membershipTO.getGroupName());
} else if (anyObject.getRealm().getFullPath().startsWith(group.getRealm().getFullPath())) {
AMembership membership = entityFactory.newEntity(AMembership.class);
membership.setRightEnd(group);
@@ -271,26 +275,26 @@ public class AnyObjectDataBinderImpl extends AbstractAnyDataBinder implements An
LOG.debug("Ignoring invalid relationship type {}", patch.getRelationshipTO().getType());
} else {
Optional<? extends ARelationship> relationship =
- anyObject.getRelationship(relationshipType, patch.getRelationshipTO().getRightKey());
+ anyObject.getRelationship(relationshipType, patch.getRelationshipTO().getOtherEndKey());
if (relationship.isPresent()) {
anyObject.getRelationships().remove(relationship.get());
relationship.get().setLeftEnd(null);
}
if (patch.getOperation() == PatchOperation.ADD_REPLACE) {
- if (StringUtils.isBlank(patch.getRelationshipTO().getRightType())
- || AnyTypeKind.USER.name().equals(patch.getRelationshipTO().getRightType())
- || AnyTypeKind.GROUP.name().equals(patch.getRelationshipTO().getRightType())) {
+ if (StringUtils.isBlank(patch.getRelationshipTO().getOtherEndType())
+ || AnyTypeKind.USER.name().equals(patch.getRelationshipTO().getOtherEndType())
+ || AnyTypeKind.GROUP.name().equals(patch.getRelationshipTO().getOtherEndType())) {
SyncopeClientException invalidAnyType =
SyncopeClientException.build(ClientExceptionType.InvalidAnyType);
invalidAnyType.getElements().add(AnyType.class.getSimpleName()
- + " not allowed for relationship: " + patch.getRelationshipTO().getRightType());
+ + " not allowed for relationship: " + patch.getRelationshipTO().getOtherEndType());
scce.addException(invalidAnyType);
} else {
- AnyObject otherEnd = anyObjectDAO.find(patch.getRelationshipTO().getRightKey());
+ AnyObject otherEnd = anyObjectDAO.find(patch.getRelationshipTO().getOtherEndKey());
if (otherEnd == null) {
- LOG.debug("Ignoring invalid any object {}", patch.getRelationshipTO().getRightKey());
+ LOG.debug("Ignoring invalid any object {}", patch.getRelationshipTO().getOtherEndKey());
} else if (anyObject.getRealm().getFullPath().startsWith(otherEnd.getRealm().getFullPath())) {
ARelationship newRelationship = entityFactory.newEntity(ARelationship.class);
newRelationship.setType(relationshipType);
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
index 770e7da..044bc99 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
@@ -206,9 +206,9 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
if (user.getRealm() != null) {
// relationships
userTO.getRelationships().forEach(relationshipTO -> {
- AnyObject otherEnd = anyObjectDAO.find(relationshipTO.getRightKey());
+ AnyObject otherEnd = anyObjectDAO.find(relationshipTO.getOtherEndKey());
if (otherEnd == null) {
- LOG.debug("Ignoring invalid anyObject " + relationshipTO.getRightKey());
+ LOG.debug("Ignoring invalid anyObject " + relationshipTO.getOtherEndKey());
} else if (user.getRealm().getFullPath().startsWith(otherEnd.getRealm().getFullPath())) {
RelationshipType relationshipType = relationshipTypeDAO.find(relationshipTO.getType());
if (relationshipType == null) {
@@ -233,12 +233,12 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
// memberships
userTO.getMemberships().forEach(membershipTO -> {
- Group group = membershipTO.getRightKey() == null
+ Group group = membershipTO.getGroupKey() == null
? groupDAO.findByName(membershipTO.getGroupName())
- : groupDAO.find(membershipTO.getRightKey());
+ : groupDAO.find(membershipTO.getGroupKey());
if (group == null) {
LOG.debug("Ignoring invalid group "
- + membershipTO.getRightKey() + " / " + membershipTO.getGroupName());
+ + membershipTO.getGroupKey() + " / " + membershipTO.getGroupName());
} else if (user.getRealm().getFullPath().startsWith(group.getRealm().getFullPath())) {
UMembership membership = entityFactory.newEntity(UMembership.class);
membership.setRightEnd(group);
@@ -374,16 +374,16 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
LOG.debug("Ignoring invalid relationship type {}", patch.getRelationshipTO().getType());
} else {
Optional<? extends URelationship> relationship =
- user.getRelationship(relationshipType, patch.getRelationshipTO().getRightKey());
+ user.getRelationship(relationshipType, patch.getRelationshipTO().getOtherEndKey());
if (relationship.isPresent()) {
user.getRelationships().remove(relationship.get());
relationship.get().setLeftEnd(null);
}
if (patch.getOperation() == PatchOperation.ADD_REPLACE) {
- AnyObject otherEnd = anyObjectDAO.find(patch.getRelationshipTO().getRightKey());
+ AnyObject otherEnd = anyObjectDAO.find(patch.getRelationshipTO().getOtherEndKey());
if (otherEnd == null) {
- LOG.debug("Ignoring invalid any object {}", patch.getRelationshipTO().getRightKey());
+ LOG.debug("Ignoring invalid any object {}", patch.getRelationshipTO().getOtherEndKey());
} else if (user.getRealm().getFullPath().startsWith(otherEnd.getRealm().getFullPath())) {
URelationship newRelationship = entityFactory.newEntity(URelationship.class);
newRelationship.setType(relationshipType);
@@ -605,7 +605,8 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
// relationships
userTO.getRelationships().addAll(
- user.getRelationships().stream().map(relationship -> getRelationshipTO(relationship)).
+ user.getRelationships().stream().map(relationship -> getRelationshipTO(
+ relationship.getType().getKey(), relationship.getRightEnd())).
collect(Collectors.toList()));
// memberships
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/UserReportlet.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/UserReportlet.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/UserReportlet.java
index a485672..3f9384b 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/UserReportlet.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/UserReportlet.java
@@ -260,11 +260,11 @@ public class UserReportlet extends AbstractReportlet {
atts.clear();
atts.addAttribute("", "", "anyObjectKey",
- ReportXMLConst.XSD_STRING, rel.getRightKey());
+ ReportXMLConst.XSD_STRING, rel.getOtherEndKey());
handler.startElement("", "", "relationship", atts);
if (conf.getFeatures().contains(Feature.resources)) {
- for (URelationship actualRel : user.getRelationships(rel.getRightKey())) {
+ for (URelationship actualRel : user.getRelationships(rel.getOtherEndKey())) {
doExtractResources(
handler, anyObjectDataBinder.getAnyObjectTO(actualRel.getRightEnd(), true));
}
@@ -282,15 +282,15 @@ public class UserReportlet extends AbstractReportlet {
atts.clear();
atts.addAttribute("", "", "groupKey",
- ReportXMLConst.XSD_STRING, memb.getRightKey());
+ ReportXMLConst.XSD_STRING, memb.getGroupKey());
atts.addAttribute("", "", "groupName", ReportXMLConst.XSD_STRING, memb.getGroupName());
handler.startElement("", "", "membership", atts);
if (conf.getFeatures().contains(Feature.resources)) {
- UMembership actualMemb = user.getMembership(memb.getRightKey()).orElse(null);
+ UMembership actualMemb = user.getMembership(memb.getGroupKey()).orElse(null);
if (actualMemb == null) {
LOG.warn("Unexpected: cannot find membership for group {} for user {}",
- memb.getRightKey(), user);
+ memb.getGroupKey(), user);
} else {
doExtractResources(handler, groupDataBinder.getGroupTO(actualMemb.getRightEnd(), true));
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/TemplateUtils.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/TemplateUtils.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/TemplateUtils.java
index 0994252..5c69268 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/TemplateUtils.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/TemplateUtils.java
@@ -108,8 +108,8 @@ public class TemplateUtils {
private void fillRelationships(final GroupableRelatableTO any, final GroupableRelatableTO template) {
template.getRelationships().stream().
- filter(relationship
- -> !any.getRelationship(relationship.getRightKey(), relationship.getRightKey()).isPresent()).
+ filter(relationship -> !any.getRelationship(
+ relationship.getOtherEndKey(), relationship.getOtherEndKey()).isPresent()).
forEachOrdered(relationship -> {
any.getRelationships().add(relationship);
});
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchUtils.java
----------------------------------------------------------------------
diff --git a/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchUtils.java b/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchUtils.java
index 3612c5d..e51b53f 100644
--- a/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchUtils.java
+++ b/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchUtils.java
@@ -112,11 +112,8 @@ public class ElasticsearchUtils {
List<Object> relationships = new ArrayList<>();
List<Object> relationshipTypes = new ArrayList<>();
- anyObjectDAO.findAllRelationships(anyObject).stream().
- map(relationship -> {
- relationships.add(relationship.getRightEnd().getKey());
- return relationship;
- }).forEachOrdered(relationship -> {
+ anyObjectDAO.findAllRelationships(anyObject).forEach(relationship -> {
+ relationships.add(relationship.getRightEnd().getKey());
relationshipTypes.add(relationship.getType().getKey());
});
builder = builder.field("relationships", relationships);
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AnyObjectITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AnyObjectITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AnyObjectITCase.java
index 1829c30..e97ebd8 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AnyObjectITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AnyObjectITCase.java
@@ -203,7 +203,7 @@ public class AnyObjectITCase extends AbstractITCase {
@Test
public void issueSYNCOPE756() {
AnyObjectTO anyObjectTO = getSampleTO("issueSYNCOPE756");
- anyObjectTO.getRelationships().add(new RelationshipTO.Builder().right(
+ anyObjectTO.getRelationships().add(new RelationshipTO.Builder().otherEnd(
AnyTypeKind.USER.name(), "1417acbe-cbf6-4277-9372-e75e04f97000").build());
try {
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
index 273509a..5bd3e7b 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
@@ -258,7 +258,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
assertTrue(userTO.getResources().contains(RESOURCE_NAME_TESTDB));
assertTrue(userTO.getResources().contains(RESOURCE_NAME_WS2));
assertEquals(1, userTO.getMemberships().size());
- assertEquals("f779c0d4-633b-4be5-8f57-32eb478a3ca5", userTO.getMemberships().get(0).getRightKey());
+ assertEquals("f779c0d4-633b-4be5-8f57-32eb478a3ca5", userTO.getMemberships().get(0).getGroupKey());
// Unmatching --> Assign (link) - SYNCOPE-658
assertTrue(userTO.getResources().contains(RESOURCE_NAME_CSV));
http://git-wip-us.apache.org/repos/asf/syncope/blob/1d74b79c/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserWorkflowITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserWorkflowITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserWorkflowITCase.java
index ceffc32..c4a21c4 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserWorkflowITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserWorkflowITCase.java
@@ -76,7 +76,7 @@ public class UserWorkflowITCase extends AbstractITCase {
userTO = createUser(userTO).getEntity();
assertNotNull(userTO);
assertEquals(1, userTO.getMemberships().size());
- assertEquals("0cbcabd2-4410-4b6b-8f05-a052b451d18f", userTO.getMemberships().get(0).getRightKey());
+ assertEquals("0cbcabd2-4410-4b6b-8f05-a052b451d18f", userTO.getMemberships().get(0).getGroupKey());
assertEquals("createApproval", userTO.getStatus());
// 2. request if there is any pending task for user just created
@@ -156,7 +156,7 @@ public class UserWorkflowITCase extends AbstractITCase {
assertNotNull(result);
userTO = result.getEntity();
assertEquals(1, userTO.getMemberships().size());
- assertEquals("0cbcabd2-4410-4b6b-8f05-a052b451d18f", userTO.getMemberships().get(0).getRightKey());
+ assertEquals("0cbcabd2-4410-4b6b-8f05-a052b451d18f", userTO.getMemberships().get(0).getGroupKey());
assertEquals("createApproval", userTO.getStatus());
assertEquals(Collections.singleton(RESOURCE_NAME_TESTDB), userTO.getResources());