Search in sources :

Example 11 with Member

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;
}
Also used : RichAttribute(cz.metacentrum.perun.core.api.RichAttribute) ArrayList(java.util.ArrayList) AttributeSetForResourceAndMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForResourceAndMember) AllAttributesRemovedForResourceAndMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForResourceAndMember) Member(cz.metacentrum.perun.core.api.Member) AttributeSetForMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForMember) AllAttributesRemovedForMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForMember) AttributeRemovedForMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForMember) AttributeRemovedForResourceAndMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForResourceAndMember) HashSet(java.util.HashSet)

Example 12 with Member

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;
}
Also used : AllAttributesRemovedForMemberAndGroup(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForMemberAndGroup) AttributeRemovedForGroup(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForGroup) AllAttributesRemovedForGroup(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForGroup) AttributeSetForGroup(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForGroup) Group(cz.metacentrum.perun.core.api.Group) AttributeSetForMemberAndGroup(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForMemberAndGroup) AttributeRemovedForMemberAndGroup(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForMemberAndGroup) RichAttribute(cz.metacentrum.perun.core.api.RichAttribute) Attribute(cz.metacentrum.perun.core.api.Attribute) RichAttribute(cz.metacentrum.perun.core.api.RichAttribute) ArrayList(java.util.ArrayList) AttributeSetForResourceAndMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForResourceAndMember) AllAttributesRemovedForResourceAndMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForResourceAndMember) Member(cz.metacentrum.perun.core.api.Member) AttributeSetForMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForMember) AllAttributesRemovedForMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForMember) AttributeRemovedForMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForMember) AttributeRemovedForResourceAndMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForResourceAndMember) HashSet(java.util.HashSet)

Example 13 with Member

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;
}
Also used : RichAttribute(cz.metacentrum.perun.core.api.RichAttribute) ArrayList(java.util.ArrayList) AttributeSetForResourceAndMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForResourceAndMember) AllAttributesRemovedForResourceAndMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForResourceAndMember) Member(cz.metacentrum.perun.core.api.Member) AttributeSetForMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForMember) AllAttributesRemovedForMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForMember) AttributeRemovedForMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForMember) AttributeRemovedForResourceAndMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForResourceAndMember) HashSet(java.util.HashSet)

Example 14 with Member

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;
}
Also used : RichAttribute(cz.metacentrum.perun.core.api.RichAttribute) Attribute(cz.metacentrum.perun.core.api.Attribute) RichAttribute(cz.metacentrum.perun.core.api.RichAttribute) ArrayList(java.util.ArrayList) AttributeSetForResourceAndMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForResourceAndMember) AllAttributesRemovedForResourceAndMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForResourceAndMember) Member(cz.metacentrum.perun.core.api.Member) AttributeSetForMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForMember) AllAttributesRemovedForMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForMember) AttributeRemovedForMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForMember) AttributeRemovedForResourceAndMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForResourceAndMember) HashSet(java.util.HashSet)

Example 15 with Member

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;
}
Also used : RichAttribute(cz.metacentrum.perun.core.api.RichAttribute) Attribute(cz.metacentrum.perun.core.api.Attribute) RichAttribute(cz.metacentrum.perun.core.api.RichAttribute) ArrayList(java.util.ArrayList) AttributeSetForResourceAndMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForResourceAndMember) AllAttributesRemovedForResourceAndMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForResourceAndMember) Member(cz.metacentrum.perun.core.api.Member) AttributeSetForMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForMember) AllAttributesRemovedForMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForMember) AttributeRemovedForMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForMember) AttributeRemovedForResourceAndMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForResourceAndMember)

Aggregations

Member (cz.metacentrum.perun.core.api.Member)573 Test (org.junit.Test)369 AbstractPerunIntegrationTest (cz.metacentrum.perun.core.AbstractPerunIntegrationTest)331 RichMember (cz.metacentrum.perun.core.api.RichMember)258 User (cz.metacentrum.perun.core.api.User)238 Group (cz.metacentrum.perun.core.api.Group)183 ArrayList (java.util.ArrayList)153 Vo (cz.metacentrum.perun.core.api.Vo)149 Attribute (cz.metacentrum.perun.core.api.Attribute)137 RichUser (cz.metacentrum.perun.core.api.RichUser)108 Resource (cz.metacentrum.perun.core.api.Resource)93 Facility (cz.metacentrum.perun.core.api.Facility)73 InternalErrorException (cz.metacentrum.perun.core.api.exceptions.InternalErrorException)69 LinkedHashMap (java.util.LinkedHashMap)66 HashSet (java.util.HashSet)65 UserExtSource (cz.metacentrum.perun.core.api.UserExtSource)56 RichGroup (cz.metacentrum.perun.core.api.RichGroup)52 LocalDate (java.time.LocalDate)52 Candidate (cz.metacentrum.perun.core.api.Candidate)51 HashMap (java.util.HashMap)50