Search in sources :

Example 61 with Group

use of org.olat.basesecurity.Group in project openolat by klemens.

the class OLATUpgrade_10_0_0 method processMapPolicy.

private EPMapUpgradeToGroupRelation processMapPolicy(Policy policy, EPMapUpgrade element) {
    String permission = policy.getPermission();
    SecurityGroup secGroup = policy.getSecurityGroup();
    Group group;
    String role;
    if (permission.startsWith(EPMapPolicy.Type.user.name())) {
        group = groupDao.createGroup();
        processSecurityGroup(group, GroupRoles.participant.name(), secGroup);
        role = EPMapPolicy.Type.user.name();
    } else if (permission.startsWith(EPMapPolicy.Type.group.name())) {
        group = findGroupOfBusinessGroup(secGroup);
        role = EPMapPolicy.Type.group.name();
    } else if (permission.startsWith(EPMapPolicy.Type.invitation.name())) {
        InvitationUpgrade invitation = findInvitation(policy.getSecurityGroup());
        if (invitation == null) {
            return null;
        }
        group = invitation.getBaseGroup();
        role = EPMapPolicy.Type.invitation.name();
    } else if (permission.startsWith(EPMapPolicy.Type.allusers.name())) {
        group = groupDao.createGroup(EPMapPolicy.Type.allusers.name());
        role = EPMapPolicy.Type.allusers.name();
    } else {
        return null;
    }
    if (group == null) {
        log.error("Group not resolve for policy of map: " + element.getKey() + " and policy: " + policy.getKey());
        return null;
    }
    EPMapUpgradeToGroupRelation relation = new EPMapUpgradeToGroupRelation();
    relation.setDefaultGroup(false);
    relation.setCreationDate(new Date());
    relation.setEntry(element);
    relation.setValidTo(policy.getTo());
    relation.setValidFrom(policy.getFrom());
    relation.setGroup(group);
    relation.setRole(role);
    return relation;
}
Also used : Group(org.olat.basesecurity.Group) SecurityGroup(org.olat.basesecurity.SecurityGroup) EPMapUpgradeToGroupRelation(org.olat.upgrade.model.EPMapUpgradeToGroupRelation) InvitationUpgrade(org.olat.upgrade.model.InvitationUpgrade) SecurityGroup(org.olat.basesecurity.SecurityGroup) Date(java.util.Date)

Example 62 with Group

use of org.olat.basesecurity.Group in project openolat by klemens.

the class OLATUpgrade_10_0_0 method processInvitation.

private void processInvitation(InvitationUpgrade invitation) {
    if (invitation.getBaseGroup() == null) {
        Group invitationGroup = groupDao.createGroup();
        invitation.setBaseGroup(invitationGroup);
        dbInstance.getCurrentEntityManager().merge(invitation);
    }
}
Also used : Group(org.olat.basesecurity.Group) SecurityGroup(org.olat.basesecurity.SecurityGroup)

Example 63 with Group

use of org.olat.basesecurity.Group in project openolat by klemens.

the class BusinessGroupDAO method createAndPersist.

public BusinessGroup createAndPersist(Identity creator, String name, String description, String externalId, String managedFlags, Integer minParticipants, Integer maxParticipants, boolean waitingListEnabled, boolean autoCloseRanksEnabled, boolean showOwners, boolean showParticipants, boolean showWaitingList) {
    BusinessGroupImpl businessgroup = new BusinessGroupImpl(name, description);
    if (minParticipants != null && minParticipants.intValue() >= 0) {
        businessgroup.setMinParticipants(minParticipants);
    }
    if (maxParticipants != null && maxParticipants.intValue() >= 0) {
        businessgroup.setMaxParticipants(maxParticipants);
    }
    if (StringHelper.containsNonWhitespace(externalId)) {
        businessgroup.setExternalId(externalId);
    }
    if (StringHelper.containsNonWhitespace(managedFlags)) {
        businessgroup.setManagedFlagsString(managedFlags);
    }
    businessgroup.setOwnersVisibleIntern(showOwners);
    businessgroup.setParticipantsVisibleIntern(showParticipants);
    businessgroup.setWaitingListVisibleIntern(showWaitingList);
    // group members visibility
    businessgroup.setOwnersVisiblePublic(false);
    businessgroup.setParticipantsVisiblePublic(false);
    businessgroup.setWaitingListVisiblePublic(false);
    businessgroup.setDownloadMembersLists(false);
    if (creator == null) {
        businessgroup.setAllowToLeave(businessGroupModule.isAllowLeavingGroupCreatedByAuthors());
    } else {
        Roles roles = securityManager.getRoles(creator);
        if (roles.isAuthor()) {
            businessgroup.setAllowToLeave(businessGroupModule.isAllowLeavingGroupCreatedByAuthors());
        } else {
            businessgroup.setAllowToLeave(businessGroupModule.isAllowLeavingGroupCreatedByLearners());
        }
    }
    businessgroup.setWaitingListEnabled(waitingListEnabled);
    businessgroup.setAutoCloseRanksEnabled(autoCloseRanksEnabled);
    Group group = groupDao.createGroup();
    businessgroup.setBaseGroup(group);
    if (creator != null) {
        groupDao.addMembershipTwoWay(group, creator, GroupRoles.coach.name());
    }
    EntityManager em = dbInstance.getCurrentEntityManager();
    em.persist(businessgroup);
    OLATResource businessgroupOlatResource = olatResourceManager.createOLATResourceInstance(businessgroup);
    olatResourceManager.saveOLATResource(businessgroupOlatResource);
    businessgroup.setResource(businessgroupOlatResource);
    businessgroup = em.merge(businessgroup);
    // per default all collaboration-tools are disabled
    return businessgroup;
}
Also used : Group(org.olat.basesecurity.Group) BusinessGroup(org.olat.group.BusinessGroup) EntityManager(javax.persistence.EntityManager) OLATResource(org.olat.resource.OLATResource) GroupRoles(org.olat.basesecurity.GroupRoles) Roles(org.olat.core.id.Roles) BusinessGroupImpl(org.olat.group.BusinessGroupImpl)

Example 64 with Group

use of org.olat.basesecurity.Group in project openolat by klemens.

the class BusinessGroupRelationDAO method addRole.

public void addRole(Identity identity, BusinessGroup businessGroup, String role) {
    Group group = null;
    try {
        group = businessGroup.getBaseGroup();
        if (group == null) {
            group = getGroup(businessGroup);
        }
    } catch (Exception e) {
        log.warn("", e);
        group = getGroup(businessGroup);
    }
    groupDao.addMembershipOneWay(group, identity, role);
}
Also used : Group(org.olat.basesecurity.Group) BusinessGroup(org.olat.group.BusinessGroup)

Example 65 with Group

use of org.olat.basesecurity.Group in project openolat by klemens.

the class BGRightManagerImpl method findBGRights.

@Override
public List<BGRights> findBGRights(List<Group> baseGroups, OLATResource resource) {
    List<Grant> grants = groupDao.getGrants(baseGroups, resource);
    List<BGRights> rights = new ArrayList<>();
    Map<BGRights, BGRights> rightsMap = new HashMap<>();
    for (Grant grant : grants) {
        String right = grant.getPermission();
        if (right.indexOf(BG_RIGHT_PREFIX) == 0 && grant.getResource().equals(resource)) {
            BGRightsRole role = null;
            if (GroupRoles.participant.name().equals(grant.getRole())) {
                role = BGRightsRole.participant;
            } else if (GroupRoles.coach.name().equals(grant.getRole())) {
                role = BGRightsRole.tutor;
            }
            BGRights wrapper = new BGRightsImpl(grant.getGroup(), role);
            wrapper = rightsMap.computeIfAbsent(wrapper, w -> w);
            wrapper.getRights().add(right);
            rights.add(wrapper);
        }
    }
    return rights;
}
Also used : Collection(java.util.Collection) Autowired(org.springframework.beans.factory.annotation.Autowired) HashMap(java.util.HashMap) IdentityRef(org.olat.basesecurity.IdentityRef) OLATResource(org.olat.resource.OLATResource) ArrayList(java.util.ArrayList) List(java.util.List) DB(org.olat.core.commons.persistence.DB) GroupRoles(org.olat.basesecurity.GroupRoles) GroupDAO(org.olat.basesecurity.manager.GroupDAO) Service(org.springframework.stereotype.Service) Map(java.util.Map) BusinessGroup(org.olat.group.BusinessGroup) Group(org.olat.basesecurity.Group) Collections(java.util.Collections) Grant(org.olat.basesecurity.Grant) Grant(org.olat.basesecurity.Grant) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList)

Aggregations

Group (org.olat.basesecurity.Group)170 Test (org.junit.Test)92 Identity (org.olat.core.id.Identity)80 BusinessGroup (org.olat.group.BusinessGroup)72 RepositoryEntry (org.olat.repository.RepositoryEntry)46 ArrayList (java.util.ArrayList)28 GroupMembership (org.olat.basesecurity.GroupMembership)26 LectureBlock (org.olat.modules.lecture.LectureBlock)26 OLATResource (org.olat.resource.OLATResource)26 LectureBlockToGroup (org.olat.modules.lecture.LectureBlockToGroup)20 Date (java.util.Date)16 SecurityGroup (org.olat.basesecurity.SecurityGroup)16 EPStructureElementToGroupRelation (org.olat.portfolio.model.structel.EPStructureElementToGroupRelation)14 HashSet (java.util.HashSet)12 RepositoryEntryToGroupRelation (org.olat.repository.model.RepositoryEntryToGroupRelation)11 HashMap (java.util.HashMap)8 Grant (org.olat.basesecurity.Grant)8 Calendar (java.util.Calendar)6 EPStructuredMapTemplate (org.olat.portfolio.model.structel.EPStructuredMapTemplate)6 BGRights (org.olat.group.right.BGRights)5