Skip to content
Snippets Groups Projects
Commit 3aca3e6c authored by jakubs's avatar jakubs
Browse files

SP-727 BIS-462 improve the group removing functionality

SVN: 29473
parent 427a9f1d
No related branches found
No related tags found
No related merge requests found
...@@ -128,6 +128,11 @@ public class AuthorizationGroupBO extends AbstractBusinessObject implements IAut ...@@ -128,6 +128,11 @@ public class AuthorizationGroupBO extends AbstractBusinessObject implements IAut
String code = authorizationGroup.getCode(); String code = authorizationGroup.getCode();
try try
{ {
PersonPE[] persons = authorizationGroup.getPersons().toArray(new PersonPE[0]);
for (PersonPE personPE : persons)
{
authorizationGroup.removePerson(personPE);
}
getAuthorizationGroupDAO().delete(authorizationGroup); getAuthorizationGroupDAO().delete(authorizationGroup);
getEventDAO().persist(createDeletionEvent(code, session.tryGetPerson(), reason)); getEventDAO().persist(createDeletionEvent(code, session.tryGetPerson(), reason));
} catch (final DataAccessException ex) } catch (final DataAccessException ex)
......
...@@ -19,19 +19,24 @@ package ch.systemsx.cisd.openbis.systemtest; ...@@ -19,19 +19,24 @@ package ch.systemsx.cisd.openbis.systemtest;
import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertEquals;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.Predicate;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Attachment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Attachment;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AuthorizationGroup;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ContainerDataSet; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ContainerDataSet;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityTypePropertyType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityTypePropertyType;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewAuthorizationGroup;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
/** /**
...@@ -40,6 +45,39 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; ...@@ -40,6 +45,39 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
public class CommonServerTest extends SystemTestCase public class CommonServerTest extends SystemTestCase
{ {
@Test
public void testDeleteGroupWithPersons()
{
String groupCode = "AUTHORIZATION_TEST_GROUP";
String sessionToken = authenticateAs("test");
// create a group
NewAuthorizationGroup newGroup = new NewAuthorizationGroup();
newGroup.setCode(groupCode);
commonServer.registerAuthorizationGroup(sessionToken, newGroup);
List<AuthorizationGroup> groups = commonServer.listAuthorizationGroups(sessionToken);
TechId authorizationGroupTechId = new TechId(findAuthorizationGroup(groups, groupCode).getId());
// add user to the group
commonServer.addPersonsToAuthorizationGroup(sessionToken, authorizationGroupTechId, Arrays.asList("test_space", "test_role", "test"));
commonServer.deleteAuthorizationGroups(sessionToken, Arrays.asList(authorizationGroupTechId), "no reason");
}
private AuthorizationGroup findAuthorizationGroup(List<AuthorizationGroup> spaces, final String spaceCode)
{
return CollectionUtils.find(spaces, new Predicate<AuthorizationGroup>()
{
@Override
public boolean evaluate(AuthorizationGroup object)
{
return object.getCode().equals(spaceCode);
}
});
}
@Test @Test
public void testGetSampleWithAssignedPropertyTypesAndProperties() public void testGetSampleWithAssignedPropertyTypesAndProperties()
{ {
......
...@@ -87,8 +87,8 @@ public class SessionUpdateTest extends SystemTestCase ...@@ -87,8 +87,8 @@ public class SessionUpdateTest extends SystemTestCase
assertUserCantAccessSpace(sessionTokenUser, "TESTGROUP"); assertUserCantAccessSpace(sessionTokenUser, "TESTGROUP");
// cleanup // cleanup
commonServer.deleteAuthorizationGroups(sessionToken, Arrays.asList(authorizationGroupTechId), "no reason");
commonServer.deleteAuthorizationGroups(sessionToken, Arrays.asList(authorizationGroupTechId), "no reason");
} }
@Test @Test
......
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