Skip to content
Snippets Groups Projects
Commit a7877282 authored by felmer's avatar felmer
Browse files

SSDM-4771: Creation of link data sets and container data sets are allowed for...

SSDM-4771: Creation of link data sets and container data sets are allowed for SPACE_USERs. Systemtests written.

SVN: 38084
parent c022bcbd
No related branches found
No related tags found
No related merge requests found
......@@ -35,6 +35,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKin
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.RoleWithHierarchy;
import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE;
import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE;
import ch.systemsx.cisd.openbis.generic.shared.dto.LinkDataPE;
import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
/**
......@@ -61,6 +62,11 @@ public class DataSetAuthorizationExecutor implements IDataSetAuthorizationExecut
@DatabaseCreateOrDeleteModification(value = ObjectKind.DATA_SET)
public void canCreate(IOperationContext context, @AuthorizationGuard(guardClass = DataPEPredicate.class) DataPE dataSet)
{
if (dataSet instanceof ExternalDataPE == false)
{
return;
}
boolean isCreatorPersonAllowed = false;
boolean isPersonAllowed = false;
......
......@@ -78,6 +78,46 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewETPTAssignment;
*/
public class CreateDataSetTest extends AbstractDataSetTest
{
@Test
public void testCreateLinkDataSetWithSpaceUser()
{
String sessionToken = v3api.login(TEST_SPACE_USER, PASSWORD);
String code = UUID.randomUUID().toString();
LinkedDataCreation linkedData = new LinkedDataCreation();
linkedData.setExternalDmsId(new ExternalDmsPermId("DMS_1"));
linkedData.setExternalCode("test-"+System.currentTimeMillis());
DataSetCreation creation = new DataSetCreation();
creation.setCode(code);
creation.setTypeId(new EntityTypePermId("LINK_TYPE"));
creation.setExperimentId(new ExperimentIdentifier("/TEST-SPACE/NOE/EXP-TEST-2"));
creation.setDataStoreId(new DataStorePermId("STANDARD"));
creation.setLinkedData(linkedData);
creation.setCreationId(new CreationId(code));
List<DataSetPermId> dataSets = v3api.createDataSets(sessionToken, Collections.singletonList(creation));
assertEquals(dataSets.get(0).getPermId(), code.toUpperCase());
assertEquals(dataSets.size(), 1);
}
@Test
public void testCreateContainerDataSetWithSpaceUser()
{
String sessionToken = v3api.login(TEST_SPACE_USER, PASSWORD);
String code = UUID.randomUUID().toString();
DataSetCreation creation = new DataSetCreation();
creation.setCode(code);
creation.setTypeId(new EntityTypePermId("CONTAINER_TYPE"));
creation.setExperimentId(new ExperimentIdentifier("/TEST-SPACE/NOE/EXP-TEST-2"));
creation.setDataStoreId(new DataStorePermId("STANDARD"));
creation.setCreationId(new CreationId(code));
List<DataSetPermId> dataSets = v3api.createDataSets(sessionToken, Collections.singletonList(creation));
assertEquals(dataSets.get(0).getPermId(), code.toUpperCase());
assertEquals(dataSets.size(), 1);
}
@Test
public void testCreateDSWithAdminUserInBehalfOfASpaceObserver()
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment