Search in sources :

Example 31 with CatalogEntry

use of org.olat.repository.CatalogEntry in project OpenOLAT by OpenOLAT.

the class CatalogManager method deleteCatalogSubtree.

/**
 * recursively delete the structure starting from the catalog entry.
 *
 * @param ce
 */
private void deleteCatalogSubtree(CatalogEntry ce, List<SecurityGroup> secGroupsToBeDeleted) {
    List<CatalogEntry> children = getChildrenOf(ce);
    for (CatalogEntry nextCe : children) {
        deleteCatalogSubtree(nextCe, secGroupsToBeDeleted);
    }
    ce = dbInstance.getCurrentEntityManager().find(CatalogEntryImpl.class, ce.getKey());
    // mark owner group for deletion.
    SecurityGroup owner = ce.getOwnerGroup();
    if (owner != null) {
        secGroupsToBeDeleted.add(owner);
    }
    // TODO delete marks
    dbInstance.getCurrentEntityManager().remove(ce);
}
Also used : CatalogEntry(org.olat.repository.CatalogEntry) SecurityGroup(org.olat.basesecurity.SecurityGroup) CatalogEntryImpl(org.olat.repository.model.CatalogEntryImpl)

Example 32 with CatalogEntry

use of org.olat.repository.CatalogEntry in project OpenOLAT by OpenOLAT.

the class CatalogManager method getOwnersOfParentLine.

public List<Identity> getOwnersOfParentLine(CatalogEntry entry) {
    List<CatalogEntry> parentLine = getCategoryParentLine(entry);
    List<SecurityGroup> secGroups = new ArrayList<SecurityGroup>();
    for (CatalogEntry parent : parentLine) {
        if (parent.getOwnerGroup() != null) {
            secGroups.add(parent.getOwnerGroup());
        }
    }
    return securityManager.getIdentitiesOfSecurityGroups(secGroups);
}
Also used : CatalogEntry(org.olat.repository.CatalogEntry) ArrayList(java.util.ArrayList) SecurityGroup(org.olat.basesecurity.SecurityGroup)

Example 33 with CatalogEntry

use of org.olat.repository.CatalogEntry in project openolat by klemens.

the class CatalogTest method testPutCategoryJson.

@Test
public void testPutCategoryJson() throws IOException, URISyntaxException {
    RestConnection conn = new RestConnection();
    assertTrue(conn.login("administrator", "openolat"));
    CatalogEntryVO subEntry = new CatalogEntryVO();
    subEntry.setName("Sub-entry-1");
    subEntry.setDescription("Sub-entry-description-1");
    subEntry.setType(CatalogEntry.TYPE_NODE);
    URI uri = UriBuilder.fromUri(getContextURI()).path("catalog").path(entry1.getKey().toString()).build();
    HttpPut method = conn.createPut(uri, MediaType.APPLICATION_JSON, true);
    method.addHeader("Content-Type", MediaType.APPLICATION_JSON);
    conn.addJsonEntity(method, subEntry);
    HttpResponse response = conn.execute(method);
    assertEquals(200, response.getStatusLine().getStatusCode());
    CatalogEntryVO vo = conn.parse(response, CatalogEntryVO.class);
    assertNotNull(vo);
    List<CatalogEntry> children = catalogManager.getChildrenOf(entry1);
    boolean saved = false;
    for (CatalogEntry child : children) {
        if (vo.getKey().equals(child.getKey())) {
            saved = true;
            break;
        }
    }
    assertTrue(saved);
    conn.shutdown();
}
Also used : CatalogEntryVO(org.olat.restapi.support.vo.CatalogEntryVO) CatalogEntry(org.olat.repository.CatalogEntry) HttpResponse(org.apache.http.HttpResponse) URI(java.net.URI) HttpPut(org.apache.http.client.methods.HttpPut) Test(org.junit.Test)

Example 34 with CatalogEntry

use of org.olat.repository.CatalogEntry in project openolat by klemens.

the class CatalogTest method testUpdateAndMoveCatalogEntryJson.

@Test
public void testUpdateAndMoveCatalogEntryJson() throws IOException, URISyntaxException {
    RestConnection conn = new RestConnection();
    assertTrue(conn.login("administrator", "openolat"));
    CatalogEntryVO entry = new CatalogEntryVO();
    entry.setName("Entry-2-moved-down");
    entry.setDescription("Entry-description-2-moved-down");
    entry.setType(CatalogEntry.TYPE_NODE);
    URI uri = UriBuilder.fromUri(getContextURI()).path("catalog").path(entryToMove2.getKey().toString()).queryParam("newParentKey", subEntry13move.getKey().toString()).build();
    HttpPost method = conn.createPost(uri, MediaType.APPLICATION_JSON);
    method.addHeader("Content-Type", MediaType.APPLICATION_JSON);
    conn.addJsonEntity(method, entry);
    HttpResponse response = conn.execute(method);
    assertEquals(200, response.getStatusLine().getStatusCode());
    CatalogEntryVO vo = conn.parse(response, CatalogEntryVO.class);
    assertNotNull(vo);
    CatalogEntry updatedEntry = catalogManager.loadCatalogEntry(entryToMove2);
    assertEquals("Entry-2-moved-down", updatedEntry.getName());
    assertEquals("Entry-description-2-moved-down", updatedEntry.getDescription());
    assertNotNull(updatedEntry.getParent());
    assertTrue(updatedEntry.getParent().equalsByPersistableKey(subEntry13move));
    conn.shutdown();
}
Also used : HttpPost(org.apache.http.client.methods.HttpPost) CatalogEntryVO(org.olat.restapi.support.vo.CatalogEntryVO) CatalogEntry(org.olat.repository.CatalogEntry) HttpResponse(org.apache.http.HttpResponse) URI(java.net.URI) Test(org.junit.Test)

Example 35 with CatalogEntry

use of org.olat.repository.CatalogEntry in project openolat by klemens.

the class CatalogTest method testUpdateCatalogEntryQuery.

@Test
public void testUpdateCatalogEntryQuery() throws IOException, URISyntaxException {
    RestConnection conn = new RestConnection();
    assertTrue(conn.login("administrator", "openolat"));
    URI uri = UriBuilder.fromUri(getContextURI()).path("catalog").path(entry2.getKey().toString()).build();
    HttpPost method = conn.createPost(uri, MediaType.APPLICATION_JSON);
    conn.addEntity(method, new BasicNameValuePair("name", "Entry-2-b"), new BasicNameValuePair("description", "Entry-description-2-b"), new BasicNameValuePair("type", String.valueOf(CatalogEntry.TYPE_NODE)));
    HttpResponse response = conn.execute(method);
    assertEquals(200, response.getStatusLine().getStatusCode());
    CatalogEntryVO vo = conn.parse(response, CatalogEntryVO.class);
    assertNotNull(vo);
    CatalogEntry updatedEntry = catalogManager.loadCatalogEntry(entry2);
    assertEquals("Entry-2-b", updatedEntry.getName());
    assertEquals("Entry-description-2-b", updatedEntry.getDescription());
    conn.shutdown();
}
Also used : HttpPost(org.apache.http.client.methods.HttpPost) CatalogEntryVO(org.olat.restapi.support.vo.CatalogEntryVO) BasicNameValuePair(org.apache.http.message.BasicNameValuePair) CatalogEntry(org.olat.repository.CatalogEntry) HttpResponse(org.apache.http.HttpResponse) URI(java.net.URI) Test(org.junit.Test)

Aggregations

CatalogEntry (org.olat.repository.CatalogEntry)122 Test (org.junit.Test)30 CatalogEntryVO (org.olat.restapi.support.vo.CatalogEntryVO)30 URI (java.net.URI)28 HttpResponse (org.apache.http.HttpResponse)28 Identity (org.olat.core.id.Identity)28 ArrayList (java.util.ArrayList)20 Path (javax.ws.rs.Path)18 SecurityGroup (org.olat.basesecurity.SecurityGroup)18 RepositoryEntry (org.olat.repository.RepositoryEntry)18 Produces (javax.ws.rs.Produces)14 HttpPut (org.apache.http.client.methods.HttpPut)12 GET (javax.ws.rs.GET)10 WebApplicationException (javax.ws.rs.WebApplicationException)10 HttpPost (org.apache.http.client.methods.HttpPost)10 OLATResourceable (org.olat.core.id.OLATResourceable)10 ContextEntry (org.olat.core.id.context.ContextEntry)10 LockResult (org.olat.core.util.coordinate.LockResult)10 CatalogManager (org.olat.repository.manager.CatalogManager)8 Link (org.olat.core.gui.components.link.Link)6