Repository: syncope Updated Branches: refs/heads/2_0_X da7fe0dc7 -> 1c8962719 refs/heads/master d11be0df6 -> 9e9002f4b
[SYNCOPE-1304] Correct referece to userOwner_id / groupOwner_id in ORDER BY statements Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/1c896271 Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/1c896271 Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/1c896271 Branch: refs/heads/2_0_X Commit: 1c896271996a9626ce1e451dfd9b13a3272e95da Parents: da7fe0d Author: Francesco Chicchiriccò <[email protected]> Authored: Mon Apr 23 16:26:11 2018 +0200 Committer: Francesco Chicchiriccò <[email protected]> Committed: Mon Apr 23 16:26:11 2018 +0200 ---------------------------------------------------------------------- .../syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java | 7 ++++++- .../test/java/org/apache/syncope/fit/core/SearchITCase.java | 8 ++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/1c896271/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java ---------------------------------------------------------------------- diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java index f33295d..3dbca69 100644 --- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java +++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java @@ -27,6 +27,7 @@ import java.util.Set; import javax.persistence.Query; import javax.persistence.TemporalType; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Triple; @@ -64,6 +65,8 @@ public class JPAAnySearchDAO extends AbstractAnySearchDAO { private static final String EMPTY_QUERY = "SELECT any_id FROM user_search_attr WHERE 1=2"; + private static final String[] RELATIONSHIP_FIELDS = new String[] { "realm", "userOwner", "groupOwner" }; + private Pair<String, Set<String>> getAdminRealmsFilter( final Set<String> adminRealms, final SearchSupport svs, @@ -318,7 +321,9 @@ public class JPAAnySearchDAO extends AbstractAnySearchDAO { } } else { // Adjust field name to column name - fieldName = "realm".equals(fieldName) ? "realm_id" : fieldName; + if (ArrayUtils.contains(RELATIONSHIP_FIELDS, fieldName)) { + fieldName += "_id"; + } obs.views.add(svs.field()); http://git-wip-us.apache.org/repos/asf/syncope/blob/1c896271/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SearchITCase.java ---------------------------------------------------------------------- diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SearchITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SearchITCase.java index 4af22aa..a03abe5 100644 --- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SearchITCase.java +++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SearchITCase.java @@ -598,4 +598,12 @@ public class SearchITCase extends AbstractITCase { userService.update(patch); } } + + @Test + public void issueSYNCOPE1304() { + PagedResult<GroupTO> groups = groupService.search(new AnyQuery.Builder().realm(SyncopeConstants.ROOT_REALM). + orderBy("userOwner DESC").build()); + assertNotNull(groups); + assertFalse(groups.getResult().isEmpty()); + } }
