You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@syncope.apache.org by "gonzalad (JIRA)" <ji...@apache.org> on 2016/07/08 17:25:11 UTC

[jira] [Created] (SYNCOPE-902) Provide helper method to retrieve all the groups of a user

gonzalad created SYNCOPE-902:
--------------------------------

             Summary: Provide helper method to retrieve all the groups of a user
                 Key: SYNCOPE-902
                 URL: https://issues.apache.org/jira/browse/SYNCOPE-902
             Project: Syncope
          Issue Type: Bug
          Components: client
    Affects Versions: 2.0.0-M4
            Reporter: gonzalad
            Priority: Minor


Syncope could provide a helper method to retrieve all the groups of a user.

For the moment, we need to code something like :

{code}

UserTO userTO = ...
List<GroupTO> groupTOs = Collections.<GroupTO> emptyList();
List<Long> keys = userTO.getMembershipMap().entrySet().stream()
        .filter(entry -> "GROUP".equals(entry.getValue().getRightType()))
        .map(entry -> entry.getValue().getRightKey()).collect(Collectors.toList());
if (keys.size() > 0) {

    // cannot say I like the next 2 lines

    Long firstKey = keys.get(0);
    keys.remove(0);
    String fiql = SyncopeClient.getGroupSearchConditionBuilder().is("key")
            .equalTo(firstKey, keys.toArray(new Long[keys.size()])).query();
    PagedResult<GroupTO> groupTOsPage = syncopeClient.getService(GroupService.class)
            .search(new AnySearchQuery.Builder().realm(SyncopeConstants.ROOT_REALM).fiql(fiql).build());
    groupTOs = (List<GroupTO>) groupTOsPage.getResult();
}
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)