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));
}
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()));
}
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()));
}
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());
}
Aggregations