Search in sources :

Example 26 with Offer

use of org.olat.resource.accesscontrol.Offer in project openolat by klemens.

the class AutoAccessManagerImpl method createOfferAccess.

private OfferAccess createOfferAccess(OLATResource resource, RepositoryEntry entry, AccessMethod method) {
    OfferAccess offerAccess;
    String displayName = entry.getDisplayname();
    Offer offer = acService.createOffer(resource, displayName);
    offer.setAutoBooking(true);
    offerAccess = acService.createOfferAccess(offer, method);
    acService.save(offer);
    acService.saveOfferAccess(offerAccess);
    return offerAccess;
}
Also used : OfferAccess(org.olat.resource.accesscontrol.OfferAccess) Offer(org.olat.resource.accesscontrol.Offer)

Example 27 with Offer

use of org.olat.resource.accesscontrol.Offer in project openolat by klemens.

the class AutoAccessManagerImplTest method shouldMakeOfferBeforeGrantingAccessIfNotExists.

@Test
public void shouldMakeOfferBeforeGrantingAccessIfNotExists() {
    when(identifierHandlerMock.findRepositoryEntries(any(IdentifierKey.class), anyString())).thenReturn(listWithRespositotyEntryMock);
    when(repositoryEntryRelationDaoMock.hasRole(IDENTITY, repositoryEntryMock, GroupRoles.participant.name())).thenReturn(false);
    when(acServiceMock.getValidOfferAccess(any(OLATResource.class), any(AccessMethod.class))).thenReturn(new ArrayList<>());
    Offer offerMock = mock(Offer.class);
    when(acServiceMock.createOffer(any(OLATResource.class), anyString())).thenReturn(offerMock);
    List<AccessMethod> methods = Arrays.asList(accessMethodDummy);
    when(acServiceMock.getAvailableMethodsByType(METHOD_CLASS)).thenReturn(methods);
    Collection<AdvanceOrder> advanceOrders = getPendingAdvanceOrders();
    sut.grantAccess(advanceOrders);
    verify(acServiceMock, times(2)).createOffer(any(OLATResource.class), anyString());
    verify(acServiceMock, times(2)).createOfferAccess(any(Offer.class), isA(AccessMethod.class));
}
Also used : IdentifierKey(org.olat.resource.accesscontrol.provider.auto.IdentifierKey) AutoAccessMethod(org.olat.resource.accesscontrol.provider.auto.model.AutoAccessMethod) AccessMethod(org.olat.resource.accesscontrol.model.AccessMethod) Offer(org.olat.resource.accesscontrol.Offer) AdvanceOrder(org.olat.resource.accesscontrol.provider.auto.AdvanceOrder) OLATResource(org.olat.resource.OLATResource) Test(org.junit.Test)

Example 28 with Offer

use of org.olat.resource.accesscontrol.Offer in project openolat by klemens.

the class BusinessGroupDAOTest method findPublicGroups.

@Test
public void findPublicGroups() {
    // create a group with an access control
    Identity identity = JunitTestHelper.createAndPersistIdentityAsRndUser("bg-search-11");
    BusinessGroup group = businessGroupDao.createAndPersist(null, "access-grp-1", "access-grp-1-desc", 0, 5, true, false, true, false, false);
    // create and save an offer
    Offer offer = acService.createOffer(group.getResource(), "TestBGWorkflow");
    assertNotNull(offer);
    offer = acService.save(offer);
    acMethodManager.enableMethod(TokenAccessMethod.class, true);
    List<AccessMethod> methods = acMethodManager.getAvailableMethodsByType(TokenAccessMethod.class);
    AccessMethod method = methods.get(0);
    OfferAccess access = acMethodManager.createOfferAccess(offer, method);
    acMethodManager.save(access);
    dbInstance.commitAndCloseSession();
    // retrieve the offer
    // check the search with the views
    BusinessGroupQueryParams queryAllParams = new BusinessGroupQueryParams();
    queryAllParams.setPublicGroups(Boolean.TRUE);
    List<OpenBusinessGroupRow> accessGroupViews = businessGroupDao.searchPublishedBusinessGroups(queryAllParams, identity);
    Assert.assertNotNull(accessGroupViews);
    Assert.assertTrue(accessGroupViews.size() >= 1);
    Assert.assertTrue(contains(accessGroupViews, group));
    for (OpenBusinessGroupRow accessGroup : accessGroupViews) {
        OLATResource resource = resourceManager.findResourceById(accessGroup.getResourceKey());
        List<Offer> offers = acService.findOfferByResource(resource, true, new Date());
        Assert.assertNotNull(offers);
        Assert.assertFalse(offers.isEmpty());
    }
}
Also used : BusinessGroupQueryParams(org.olat.group.model.BusinessGroupQueryParams) AccessMethod(org.olat.resource.accesscontrol.model.AccessMethod) TokenAccessMethod(org.olat.resource.accesscontrol.model.TokenAccessMethod) OfferAccess(org.olat.resource.accesscontrol.OfferAccess) BusinessGroup(org.olat.group.BusinessGroup) Offer(org.olat.resource.accesscontrol.Offer) OpenBusinessGroupRow(org.olat.group.model.OpenBusinessGroupRow) OLATResource(org.olat.resource.OLATResource) Identity(org.olat.core.id.Identity) Date(java.util.Date) Test(org.junit.Test)

Example 29 with Offer

use of org.olat.resource.accesscontrol.Offer in project openolat by klemens.

the class AccessTransactionTest method generateDatas.

@Test
public void generateDatas() {
    // pick up a method
    List<AccessMethod> methods = acMethodManager.getAvailableMethodsByType(FreeAccessMethod.class);
    AccessMethod method = methods.get(0);
    StringBuilder sb = new StringBuilder();
    sb.append("select v from repositoryentry as v ").append(" inner join fetch v.olatResource as ores").append(" inner join fetch v.statistics as statistics").append(" left join fetch v.lifecycle as lifecycle").append(" where ores.resName='CourseModule' and v.access>0");
    List<RepositoryEntry> courses = dbInstance.getCurrentEntityManager().createQuery(sb.toString(), RepositoryEntry.class).getResultList();
    List<Identity> loadIdentities = securityManager.getVisibleIdentitiesByPowerSearch(null, null, false, null, null, null, null, null, 0, 40000);
    for (RepositoryEntry course : courses) {
        try {
            List<Offer> offers = acService.findOfferByResource(course.getOlatResource(), true, null);
            if (offers.isEmpty()) {
                OLATResource randomOres = course.getOlatResource();
                Offer offer = acService.createOffer(randomOres, "Free " + course.getDisplayname());
                offer.setAutoBooking(true);
                OfferAccess link = acService.createOfferAccess(offer, method);
                offer = acService.save(offer);
                acService.saveOfferAccess(link);
                dbInstance.commit();
                int fromIndex = (int) (Math.random() * loadIdentities.size() - 1);
                int length = (int) (Math.random() * 200);
                int toIndex = Math.min(loadIdentities.size() - 1, fromIndex + length);
                List<Identity> identities = loadIdentities.subList(fromIndex, toIndex);
                for (Identity identity : identities) {
                    acService.isAccessible(course, identity, false, true);
                    dbInstance.commit();
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            dbInstance.commitAndCloseSession();
        }
    }
}
Also used : OfferAccess(org.olat.resource.accesscontrol.OfferAccess) OLATResource(org.olat.resource.OLATResource) RepositoryEntry(org.olat.repository.RepositoryEntry) AccessMethod(org.olat.resource.accesscontrol.model.AccessMethod) FreeAccessMethod(org.olat.resource.accesscontrol.model.FreeAccessMethod) Offer(org.olat.resource.accesscontrol.Offer) Identity(org.olat.core.id.Identity) Test(org.junit.Test)

Example 30 with Offer

use of org.olat.resource.accesscontrol.Offer in project openolat by klemens.

the class FreeAccessConfigurationController method commitChanges.

@Override
public OfferAccess commitChanges() {
    Offer offer = link.getOffer();
    offer.setDescription(descEl.getValue());
    offer.setValidFrom(dateFrom.getDate());
    offer.setValidTo(dateTo.getDate());
    offer.setAutoBooking(autoEl.isAtLeastSelected(1));
    link.setValidFrom(dateFrom.getDate());
    link.setValidTo(dateTo.getDate());
    return link;
}
Also used : Offer(org.olat.resource.accesscontrol.Offer)

Aggregations

Offer (org.olat.resource.accesscontrol.Offer)38 OfferAccess (org.olat.resource.accesscontrol.OfferAccess)16 AccessMethod (org.olat.resource.accesscontrol.model.AccessMethod)12 Test (org.junit.Test)8 OLATResource (org.olat.resource.OLATResource)8 Date (java.util.Date)6 Identity (org.olat.core.id.Identity)6 AccessMethodHandler (org.olat.resource.accesscontrol.method.AccessMethodHandler)6 CloseableModalController (org.olat.core.gui.control.generic.closablewrapper.CloseableModalController)4 BusinessGroup (org.olat.group.BusinessGroup)4 BusinessGroupQueryParams (org.olat.group.model.BusinessGroupQueryParams)4 OpenBusinessGroupRow (org.olat.group.model.OpenBusinessGroupRow)4 TokenAccessMethod (org.olat.resource.accesscontrol.model.TokenAccessMethod)4 AccessResult (org.olat.resource.accesscontrol.AccessResult)3 ClientActionRequiredException (com.paypal.exception.ClientActionRequiredException)2 HttpErrorException (com.paypal.exception.HttpErrorException)2 InvalidCredentialException (com.paypal.exception.InvalidCredentialException)2 InvalidResponseDataException (com.paypal.exception.InvalidResponseDataException)2 MissingCredentialException (com.paypal.exception.MissingCredentialException)2 SSLConfigurationException (com.paypal.exception.SSLConfigurationException)2