Search in sources :

Example 16 with Map

use of org.hisp.dhis.mapping.Map in project dhis2-core by dhis2.

the class DashboardCascadeSharingTest method testAtomicTrue.

@Test
void testAtomicTrue() {
    Map mapA = createMap("A");
    mapA.setSharing(sharingReadWriteForUserB);
    objectManager.save(mapA, false);
    assertFalse(aclService.canRead(userA, mapA));
    Map mapB = createMap("A");
    mapB.setSharing(defaultSharing());
    objectManager.save(mapB, false);
    DashboardItem itemB = createDashboardItem("B");
    itemB.setMap(mapB);
    DashboardItem itemA = createDashboardItem("A");
    itemA.setMap(mapA);
    Dashboard dashboard = createDashboard("A", sharingReadForUserA);
    dashboard.getItems().add(itemA);
    dashboard.getItems().add(itemB);
    objectManager.save(dashboard, false);
    assertFalse(aclService.canRead(userA, mapA));
    CascadeSharingReport report = cascadeSharingService.cascadeSharing(dashboard, CascadeSharingParameters.builder().atomic(true).user(userB).build());
    assertEquals(1, report.getErrorReports().size());
    assertEquals(0, report.getUpdateObjects().size());
    assertFalse(aclService.canRead(userA, mapA));
    assertFalse(aclService.canRead(userA, mapB));
}
Also used : Dashboard(org.hisp.dhis.dashboard.Dashboard) DashboardItem(org.hisp.dhis.dashboard.DashboardItem) Map(org.hisp.dhis.mapping.Map) Test(org.junit.jupiter.api.Test)

Example 17 with Map

use of org.hisp.dhis.mapping.Map in project dhis2-core by dhis2.

the class DashboardCascadeSharingTest method testCascadeShareMap.

/**
 * Dashboard is shared to userA
 * <p>
 * Dashboard has a MapA
 * <p>
 * Expected: MapA will be shared to userA
 */
@Test
void testCascadeShareMap() {
    Map map = createMap("A");
    map.setSharing(Sharing.builder().publicAccess(DEFAULT).build());
    objectManager.save(map, false);
    Dashboard dashboard = createDashboardWithItem("A", sharingReadForUserA);
    dashboard.getItems().get(0).setMap(map);
    objectManager.save(dashboard, false);
    CascadeSharingReport report = cascadeSharingService.cascadeSharing(dashboard, new CascadeSharingParameters());
    assertEquals(0, report.getErrorReports().size());
    assertTrue(aclService.canRead(userA, dashboard.getItems().get(0).getMap()));
    assertEquals(READ, dashboard.getItems().get(0).getMap().getSharing().getUsers().get(userA.getUid()).getAccess());
    assertFalse(aclService.canRead(userB, dashboard.getItems().get(0).getMap()));
}
Also used : Dashboard(org.hisp.dhis.dashboard.Dashboard) Map(org.hisp.dhis.mapping.Map) Test(org.junit.jupiter.api.Test)

Example 18 with Map

use of org.hisp.dhis.mapping.Map in project dhis2-core by dhis2.

the class DashboardCascadeSharingTest method testCascadeShareMapError.

/**
 * Dashboard is shared to userB.
 * <p>
 * But userB's access is DEFAULT('--------')
 * <p>
 * Expected: no objects being updated.
 */
@Test
void testCascadeShareMapError() {
    DataElement dataElementB = createDataElement('B');
    dataElementB.setSharing(Sharing.builder().publicAccess(DEFAULT).build());
    objectManager.save(dataElementB, false);
    Map map = createMap("A");
    map.setSharing(Sharing.builder().publicAccess(DEFAULT).build());
    objectManager.save(map, false);
    objectManager.flush();
    Sharing sharing = new Sharing();
    sharing.setPublicAccess(DEFAULT);
    sharing.addUserAccess(new UserAccess(userB, DEFAULT));
    Dashboard dashboard = createDashboardWithItem("dashboardA", sharing);
    dashboard.getItems().get(0).setMap(map);
    objectManager.save(dashboard, false);
    CascadeSharingReport report = cascadeSharingService.cascadeSharing(dashboard, new CascadeSharingParameters());
    assertEquals(0, report.getUpdateObjects().size());
    assertFalse(aclService.canRead(userB, dashboard.getItems().get(0).getMap()));
}
Also used : DataElement(org.hisp.dhis.dataelement.DataElement) Sharing(org.hisp.dhis.user.sharing.Sharing) UserAccess(org.hisp.dhis.user.sharing.UserAccess) Dashboard(org.hisp.dhis.dashboard.Dashboard) Map(org.hisp.dhis.mapping.Map) Test(org.junit.jupiter.api.Test)

Example 19 with Map

use of org.hisp.dhis.mapping.Map in project dhis2-core by dhis2.

the class DashboardItemDeletionHandlerTest method testDeleteMap.

@Test
void testDeleteMap() {
    Map map = new Map();
    map.setName("A");
    mappingService.addMap(map);
    dashboardItem.setMap(map);
    dashboardService.saveDashboard(dashboard);
    assertEquals(1, dashboardService.getMapDashboardItems(map).size());
    assertEquals(1, dashboard.getItemCount());
    mappingService.deleteMap(map);
    assertEquals(0, dashboardService.getMapDashboardItems(map).size());
    assertEquals(0, dashboard.getItemCount());
}
Also used : Map(org.hisp.dhis.mapping.Map) Test(org.junit.jupiter.api.Test) DhisSpringTest(org.hisp.dhis.DhisSpringTest)

Aggregations

Map (org.hisp.dhis.mapping.Map)19 Test (org.junit.jupiter.api.Test)10 Dashboard (org.hisp.dhis.dashboard.Dashboard)8 DashboardItem (org.hisp.dhis.dashboard.DashboardItem)3 WebMessageException (org.hisp.dhis.dxf2.webmessage.WebMessageException)3 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)3 ResponseStatus (org.springframework.web.bind.annotation.ResponseStatus)3 MetadataImportParams (org.hisp.dhis.dxf2.metadata.MetadataImportParams)2 MergeParams (org.hisp.dhis.schema.MergeParams)2 HashMap (java.util.HashMap)1 DhisSpringTest (org.hisp.dhis.DhisSpringTest)1 TransactionalIntegrationTest (org.hisp.dhis.TransactionalIntegrationTest)1 DataElement (org.hisp.dhis.dataelement.DataElement)1 Interpretation (org.hisp.dhis.interpretation.Interpretation)1 MapView (org.hisp.dhis.mapping.MapView)1 OrganisationUnit (org.hisp.dhis.organisationunit.OrganisationUnit)1 User (org.hisp.dhis.user.User)1 Sharing (org.hisp.dhis.user.sharing.Sharing)1 UserAccess (org.hisp.dhis.user.sharing.UserAccess)1 GetMapping (org.springframework.web.bind.annotation.GetMapping)1