use of cz.metacentrum.perun.core.api.RichAttribute in project perun by CESNET.
the class AttributesManagerBlImpl method getFacilityAttributes.
/**
* Finds all facilities rich attributes.
* Each rich attribute is returned only once.
*
* @param sess session
* @param attrDef type of attribute that will be returned
* @return List of RichAttribute
*/
private List<RichAttribute> getFacilityAttributes(PerunSession sess, AttributeDefinition attrDef) throws AttributeNotExistsException, WrongAttributeAssignmentException {
List<RichAttribute> listOfRichAttributes = new ArrayList<>();
List<Facility> facilities = getPerunBl().getFacilitiesManagerBl().getFacilities(sess);
for (Facility facilityElement : facilities) {
listOfRichAttributes.addAll(getFacilityAttributes(sess, facilityElement, attrDef));
}
return listOfRichAttributes;
}
use of cz.metacentrum.perun.core.api.RichAttribute in project perun by CESNET.
the class AttributesManagerBlImpl method getFacilityAttributes.
/**
* Returns all relevant Facility RichAttributes for given member.
* 1. Checks if given member is allowed, if not, an empty list is returned.
* 2. Otherwise finds groups for given member.
* 3. For those groups finds assigned resources.
* 4. Finds facility for each resource.
* 5. Returns rich attributes for those facilities.
* Each rich attribute is returned only once.
*
* @param sess session
* @param member member
* @param attrDef type of attribute that will be returned
* @return List of RichAttribute
*/
private List<RichAttribute> getFacilityAttributes(PerunSession sess, Member member, AttributeDefinition attrDef) throws AttributeNotExistsException, WrongAttributeAssignmentException {
List<RichAttribute> listOfRichAttributes = new ArrayList<>();
if (getPerunBl().getMembersManagerBl().isMemberAllowed(sess, member)) {
List<Group> groupsForMember = getPerunBl().getGroupsManagerBl().getAllMemberGroups(sess, member);
for (Group groupElement : groupsForMember) {
listOfRichAttributes.addAll(getFacilityAttributes(sess, groupElement, attrDef));
}
}
listOfRichAttributes = new ArrayList<>(new HashSet<>(listOfRichAttributes));
return listOfRichAttributes;
}
use of cz.metacentrum.perun.core.api.RichAttribute in project perun by CESNET.
the class AttributesManagerBlImpl method getGroupResourceAttributes.
/**
* Returns all relevant GroupResource RichAttributes for given member.
* That means, returns all GroupResource rich attributes for those groups that the given member is assigned to
* and for those resources that the given member can access.
* If the given member is not allowed, an empty list is returned.
* Each rich attribute is returned only once.
*
* @param sess session
* @param member member
* @param attrDef type of attribute that will be returned
* @return List of RichAttribute
*/
private List<RichAttribute> getGroupResourceAttributes(PerunSession sess, Member member, AttributeDefinition attrDef) throws AttributeNotExistsException, WrongAttributeAssignmentException, GroupResourceMismatchException {
List<RichAttribute> listOfRichAttributes = new ArrayList<>();
if (getPerunBl().getMembersManagerBl().isMemberAllowed(sess, member)) {
List<Group> groupsFromMember = getPerunBl().getGroupsManagerBl().getAllMemberGroups(sess, member);
List<Resource> resourcesFromMember = getPerunBl().getResourcesManagerBl().getAllowedResources(sess, member);
for (Resource resourceElement : resourcesFromMember) {
List<Group> groupsFromResourceElement = getPerunBl().getResourcesManagerBl().getAssignedGroups(sess, resourceElement);
groupsFromResourceElement.retainAll(groupsFromMember);
groupsFromResourceElement = new ArrayList<>(new HashSet<>(groupsFromResourceElement));
for (Group groupElement : groupsFromResourceElement) {
Attribute attribute = getPerunBl().getAttributesManagerBl().getAttribute(sess, resourceElement, groupElement, attrDef.getName());
listOfRichAttributes.add(new RichAttribute<>(resourceElement, groupElement, attribute));
}
}
}
listOfRichAttributes = new ArrayList<>(new HashSet<>(listOfRichAttributes));
return listOfRichAttributes;
}
use of cz.metacentrum.perun.core.api.RichAttribute in project perun by CESNET.
the class AttributesManagerBlImpl method getResourceAttributes.
/**
* Finds rich attributes for all resources.
* Each rich attribute is returned only once.
*
* @param sess session
* @param attrDef type of attribute that will be returned
* @return List of RichAttributes
*/
private List<RichAttribute> getResourceAttributes(PerunSession sess, AttributeDefinition attrDef) throws AttributeNotExistsException, WrongAttributeAssignmentException {
List<RichAttribute> listOfRichAttributes = new ArrayList<>();
List<Vo> vos = getPerunBl().getVosManagerBl().getVos(sess);
for (Vo voElement : vos) {
listOfRichAttributes.addAll(getResourceAttributes(sess, voElement, attrDef));
}
listOfRichAttributes = new ArrayList<>(new HashSet<>(listOfRichAttributes));
return listOfRichAttributes;
}
use of cz.metacentrum.perun.core.api.RichAttribute in project perun by CESNET.
the class AttributesManagerBlImpl method getUserExtSourceAttributes.
/**
* Returns all relevant UserExtSource RichAttributes for given resource.
* Finds allowed members for the given resource.
* Finds theirs user's userExtSources and returns theirs rich attributes.
* 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> getUserExtSourceAttributes(PerunSession sess, Resource resource, AttributeDefinition attrDef) throws AttributeNotExistsException, WrongAttributeAssignmentException {
List<RichAttribute> listOfRichAttributes = new ArrayList<>();
List<Member> resourceMembers = getPerunBl().getResourcesManagerBl().getAllowedMembers(sess, resource);
for (Member memberElement : resourceMembers) {
listOfRichAttributes.addAll(getUserExtSourceAttributes(sess, memberElement, attrDef));
}
listOfRichAttributes = new ArrayList<>(new HashSet<>(listOfRichAttributes));
return listOfRichAttributes;
}
Aggregations