mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-07 18:14:26 +00:00
Community admin should also be considered a Collection admin
This commit is contained in:
@@ -460,7 +460,7 @@ public class AuthorizeServiceImpl implements AuthorizeService {
|
||||
groupService.allMemberGroups(c, e),
|
||||
Constants.ADMIN, Constants.COLLECTION);
|
||||
|
||||
if (CollectionUtils.isNotEmpty(policies)) {
|
||||
if (CollectionUtils.isNotEmpty(policies) || isCommunityAdmin(c, e)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@@ -13,8 +13,10 @@ import java.sql.SQLException;
|
||||
import org.dspace.AbstractUnitTest;
|
||||
import org.dspace.authorize.factory.AuthorizeServiceFactory;
|
||||
import org.dspace.authorize.service.ResourcePolicyService;
|
||||
import org.dspace.content.Collection;
|
||||
import org.dspace.content.Community;
|
||||
import org.dspace.content.factory.ContentServiceFactory;
|
||||
import org.dspace.content.service.CollectionService;
|
||||
import org.dspace.content.service.CommunityService;
|
||||
import org.dspace.core.Constants;
|
||||
import org.dspace.eperson.EPerson;
|
||||
@@ -36,6 +38,7 @@ public class AuthorizeServiceTest extends AbstractUnitTest {
|
||||
protected ResourcePolicyService resourcePolicyService = AuthorizeServiceFactory.getInstance()
|
||||
.getResourcePolicyService();
|
||||
protected CommunityService communityService = ContentServiceFactory.getInstance().getCommunityService();
|
||||
protected CollectionService collectionService = ContentServiceFactory.getInstance().getCollectionService();
|
||||
|
||||
public AuthorizeServiceTest() {
|
||||
}
|
||||
@@ -125,4 +128,39 @@ public class AuthorizeServiceTest extends AbstractUnitTest {
|
||||
throw new AssertionError(ex);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsCollectionAdmin() throws SQLException, AuthorizeException {
|
||||
|
||||
context.turnOffAuthorisationSystem();
|
||||
|
||||
Community community = communityService.create(null, context);
|
||||
Collection collection = collectionService.create(context, community);
|
||||
EPerson eperson = ePersonService.create(context);
|
||||
|
||||
Group administrators = collectionService.createAdministrators(context, collection);
|
||||
groupService.addMember(context, administrators, eperson);
|
||||
|
||||
context.restoreAuthSystemState();
|
||||
context.commit();
|
||||
|
||||
Assert.assertTrue(authorizeService.isCollectionAdmin(context, eperson));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsCollectionAdminReturnsTrueIfTheUserIsCommunityAdmin() throws SQLException, AuthorizeException {
|
||||
|
||||
context.turnOffAuthorisationSystem();
|
||||
|
||||
Community community = communityService.create(null, context);
|
||||
EPerson eperson = ePersonService.create(context);
|
||||
|
||||
Group administrators = communityService.createAdministrators(context, community);
|
||||
groupService.addMember(context, administrators, eperson);
|
||||
|
||||
context.restoreAuthSystemState();
|
||||
context.commit();
|
||||
|
||||
Assert.assertTrue(authorizeService.isCollectionAdmin(context, eperson));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user