use of cz.metacentrum.perun.core.api.Member in project perun by CESNET.
the class AttributesManagerBlImpl method getMemberAttributes.
/**
* Returns all relevant Member RichAttributes for given Vo.
* Gets all members of given Vo. For each allowed member returns its rich attribute.
* Each rich attribute is returned only once.
*
* @param sess session
* @param vo virtual organization
* @param attrDef type of attribute that will be returned
* @return List of RichAttributes
*/
private List<RichAttribute> getMemberAttributes(PerunSession sess, Vo vo, AttributeDefinition attrDef) throws AttributeNotExistsException, WrongAttributeAssignmentException {
List<RichAttribute> listOfRichAttributes = new ArrayList<>();
List<Member> membersFromVo = getPerunBl().getMembersManagerBl().getMembers(sess, vo);
for (Member memberElement : membersFromVo) {
listOfRichAttributes.addAll(getMemberAttributes(sess, memberElement, attrDef));
}
listOfRichAttributes = new ArrayList<>(new HashSet<>(listOfRichAttributes));
return listOfRichAttributes;
}
use of cz.metacentrum.perun.core.api.Member in project perun by CESNET.
the class AttributesManagerBlImpl method getMemberGroupAttributes.
/**
* Returns all relevant MemberGroup RichAttributes for given user and facility.
* That means, returns all MemberGroup rich attributes for members that belong to the given user and are allowed
* and those groups that can access the given facility.
* Each rich attribute is returned only once.
*
* @param sess session
* @param user user
* @param facility facility
* @param attrDef type of attribute that will be returned
* @return List of RichAttribute
*/
private List<RichAttribute> getMemberGroupAttributes(PerunSession sess, User user, Facility facility, AttributeDefinition attrDef) throws AttributeNotExistsException, WrongAttributeAssignmentException, MemberGroupMismatchException {
List<RichAttribute> listOfRichAttributes = new ArrayList<>();
// get all groups from facility
List<Group> groupsFromFacility = getPerunBl().getGroupsManagerBl().getAssignedGroupsToFacility(sess, facility);
// get all groups from user
List<Member> membersFromUser = getPerunBl().getMembersManagerBl().getMembersByUser(sess, user);
Set<Group> groupsFromMembers = new HashSet<>();
for (Member memberElement : membersFromUser) {
groupsFromMembers.addAll(getPerunBl().getGroupsManagerBl().getAllMemberGroups(sess, memberElement));
}
// retain of groups
groupsFromMembers.retainAll(groupsFromFacility);
List<Group> retainedGroups = new ArrayList<>(groupsFromMembers);
// all possible groups
for (Group groupElement : retainedGroups) {
// get all members for 'groupElement' variable
List<Member> membersFromGroup = getPerunBl().getGroupsManagerBl().getGroupMembers(sess, groupElement);
membersFromGroup.retainAll(membersFromUser);
// all possibilities
for (Member memberElement : membersFromGroup) {
if (getPerunBl().getMembersManagerBl().isMemberAllowed(sess, memberElement)) {
Attribute attribute = getPerunBl().getAttributesManagerBl().getAttribute(sess, memberElement, groupElement, attrDef.getName());
listOfRichAttributes.add(new RichAttribute<>(memberElement, groupElement, attribute));
}
}
}
listOfRichAttributes = new ArrayList<>(new HashSet<>(listOfRichAttributes));
return listOfRichAttributes;
}
use of cz.metacentrum.perun.core.api.Member in project perun by CESNET.
the class AttributesManagerBlImpl method getUserAttributes.
/**
* Returns all relevant User RichAttributes for given vo.
* Find all members of given vo. For each allowed member gets its user and returns rich attributes for those users.
* Each rich attribute is returned only once.
*
* @param sess session
* @param vo vo
* @param attrDef type of attribute that will be returned
* @return List of RichAttributes
*/
private List<RichAttribute> getUserAttributes(PerunSession sess, Vo vo, AttributeDefinition attrDef) throws AttributeNotExistsException, WrongAttributeAssignmentException {
List<RichAttribute> listOfRichAttributes = new ArrayList<>();
List<Member> members = getPerunBl().getMembersManagerBl().getMembers(sess, vo);
for (Member memberElement : members) {
listOfRichAttributes.addAll(getUserAttributes(sess, memberElement, attrDef));
}
listOfRichAttributes = new ArrayList<>(new HashSet<>(listOfRichAttributes));
return listOfRichAttributes;
}
use of cz.metacentrum.perun.core.api.Member in project perun by CESNET.
the class AttributesManagerBlImpl method getMemberResourceAttributes.
/**
* Returns all relevant MemberResource RichAttributes for given group and resource.
* That means, returns all MemberResource rich attributes for the given resource and groups that can access this
* resource via theirs allowed users.
* Each rich attribute is returned only once.
*
* @param sess session
* @param group group
* @param resource resource
* @param attrDef type of attribute that will be returned
* @return List of RichAttribute
*/
private List<RichAttribute> getMemberResourceAttributes(PerunSession sess, Group group, Resource resource, AttributeDefinition attrDef) throws AttributeNotExistsException, WrongAttributeAssignmentException, MemberResourceMismatchException {
List<RichAttribute> listOfRichAttributes = new ArrayList<>();
List<Member> membersFromGroup = getPerunBl().getGroupsManagerBl().getGroupMembers(sess, group);
List<Member> membersFromResource = getPerunBl().getResourcesManagerBl().getAllowedMembers(sess, resource);
membersFromGroup.retainAll(membersFromResource);
membersFromGroup = new ArrayList<>(new HashSet<>(membersFromGroup));
for (Member memberElement : membersFromGroup) {
Attribute attribute = getPerunBl().getAttributesManagerBl().getAttribute(sess, memberElement, resource, attrDef.getName());
listOfRichAttributes.add(new RichAttribute<>(resource, memberElement, attribute));
}
listOfRichAttributes = new ArrayList<>(new HashSet<>(listOfRichAttributes));
return listOfRichAttributes;
}
use of cz.metacentrum.perun.core.api.Member in project perun by CESNET.
the class AttributesManagerBlImpl method getMemberResourceAttributes.
/**
* Returns all relevant MemberResource RichAttributes for given resource.
* That means, returns all MemberResource rich attributes for the given resource and for those members that can
* access the given resource and are allowed.
* Each rich attribute is returned only once.
*
* @param sess session
* @param resource resource
* @param attrDef type of attribute that will be returned
* @return List of RichAttribute
*/
private List<RichAttribute> getMemberResourceAttributes(PerunSession sess, Resource resource, AttributeDefinition attrDef) throws AttributeNotExistsException, WrongAttributeAssignmentException, MemberResourceMismatchException {
List<RichAttribute> listOfRichAttributes = new ArrayList<>();
List<Member> members = getPerunBl().getResourcesManagerBl().getAllowedMembers(sess, resource);
for (Member memberElement : members) {
if (getPerunBl().getMembersManagerBl().isMemberAllowed(sess, memberElement)) {
Attribute attribute = getPerunBl().getAttributesManagerBl().getAttribute(sess, memberElement, resource, attrDef.getName());
listOfRichAttributes.add(new RichAttribute<>(resource, memberElement, attribute));
}
}
return listOfRichAttributes;
}
Aggregations