mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-17 15:03:18 +00:00
added IT for Administrator feature
This commit is contained in:
@@ -19,12 +19,16 @@ import org.dspace.app.rest.converter.ConverterService;
|
|||||||
import org.dspace.app.rest.matcher.AuthorizationMatcher;
|
import org.dspace.app.rest.matcher.AuthorizationMatcher;
|
||||||
import org.dspace.app.rest.model.CollectionRest;
|
import org.dspace.app.rest.model.CollectionRest;
|
||||||
import org.dspace.app.rest.model.CommunityRest;
|
import org.dspace.app.rest.model.CommunityRest;
|
||||||
|
import org.dspace.app.rest.model.SiteRest;
|
||||||
import org.dspace.app.rest.projection.DefaultProjection;
|
import org.dspace.app.rest.projection.DefaultProjection;
|
||||||
import org.dspace.app.rest.test.AbstractControllerIntegrationTest;
|
import org.dspace.app.rest.test.AbstractControllerIntegrationTest;
|
||||||
import org.dspace.authorize.service.AuthorizeService;
|
import org.dspace.authorize.service.AuthorizeService;
|
||||||
import org.dspace.content.Collection;
|
import org.dspace.content.Collection;
|
||||||
import org.dspace.content.Community;
|
import org.dspace.content.Community;
|
||||||
|
import org.dspace.content.Site;
|
||||||
|
import org.dspace.content.factory.ContentServiceFactory;
|
||||||
import org.dspace.content.service.CommunityService;
|
import org.dspace.content.service.CommunityService;
|
||||||
|
import org.dspace.content.service.SiteService;
|
||||||
import org.dspace.eperson.EPerson;
|
import org.dspace.eperson.EPerson;
|
||||||
import org.dspace.eperson.service.GroupService;
|
import org.dspace.eperson.service.GroupService;
|
||||||
import org.hamcrest.Matchers;
|
import org.hamcrest.Matchers;
|
||||||
@@ -51,12 +55,18 @@ public class AdministratorFeatureIT extends AbstractControllerIntegrationTest {
|
|||||||
@Autowired
|
@Autowired
|
||||||
CommunityService communityService;
|
CommunityService communityService;
|
||||||
|
|
||||||
|
private SiteService siteService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* this hold a reference to the test feature {@link AdministratorFeature}
|
||||||
|
*/
|
||||||
private AuthorizationFeature administratorFeature;
|
private AuthorizationFeature administratorFeature;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
super.setUp();
|
super.setUp();
|
||||||
|
siteService = ContentServiceFactory.getInstance().getSiteService();
|
||||||
administratorFeature = authorizationFeatureService.find(AdministratorFeature.NAME);
|
administratorFeature = authorizationFeatureService.find(AdministratorFeature.NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,12 +111,14 @@ public class AdministratorFeatureIT extends AbstractControllerIntegrationTest {
|
|||||||
String tokenAdminComA = getAuthToken(adminComA.getEmail(), password);
|
String tokenAdminComA = getAuthToken(adminComA.getEmail(), password);
|
||||||
String tokenAdminComB = getAuthToken(adminComB.getEmail(), password);
|
String tokenAdminComB = getAuthToken(adminComB.getEmail(), password);
|
||||||
|
|
||||||
// define authorization that we know must exists
|
// define authorizations that we know must exists
|
||||||
Authorization authAdminCommunityA = new Authorization(adminComA, administratorFeature, communityRestA);
|
Authorization authAdminCommunityA = new Authorization(adminComA, administratorFeature, communityRestA);
|
||||||
Authorization authAdminSubCommunityOfA = new Authorization(adminComA, administratorFeature,SubCommunityOfArest);
|
Authorization authAdminSubCommunityOfA = new Authorization(adminComA, administratorFeature,SubCommunityOfArest);
|
||||||
Authorization authAdminBCommunityA = new Authorization(adminComB, administratorFeature, communityRestA);
|
|
||||||
Authorization authAdminAColl = new Authorization(adminComA, administratorFeature, collectionRestOfSubComm);
|
Authorization authAdminAColl = new Authorization(adminComA, administratorFeature, collectionRestOfSubComm);
|
||||||
|
|
||||||
|
// define authorizations that we know not exists
|
||||||
Authorization authAdminBColl = new Authorization(adminComB, administratorFeature, collectionRestOfSubComm);
|
Authorization authAdminBColl = new Authorization(adminComB, administratorFeature, collectionRestOfSubComm);
|
||||||
|
Authorization authAdminBCommunityA = new Authorization(adminComB, administratorFeature, communityRestA);
|
||||||
|
|
||||||
getClient(tokenAdminComA).perform(get("/api/authz/authorizations/" + authAdminCommunityA.getID()))
|
getClient(tokenAdminComA).perform(get("/api/authz/authorizations/" + authAdminCommunityA.getID()))
|
||||||
.andExpect(status().isOk())
|
.andExpect(status().isOk())
|
||||||
@@ -164,9 +176,11 @@ public class AdministratorFeatureIT extends AbstractControllerIntegrationTest {
|
|||||||
String tokenAdminColA = getAuthToken(adminColA.getEmail(), password);
|
String tokenAdminColA = getAuthToken(adminColA.getEmail(), password);
|
||||||
String tokenAdminColB = getAuthToken(adminColB.getEmail(), password);
|
String tokenAdminColB = getAuthToken(adminColB.getEmail(), password);
|
||||||
|
|
||||||
// define authorization that we know must exists
|
// define authorizations that we know must exists
|
||||||
Authorization authAdminCollectionA = new Authorization(adminColA, administratorFeature, collectionRestA);
|
Authorization authAdminCollectionA = new Authorization(adminColA, administratorFeature, collectionRestA);
|
||||||
Authorization authAdminCollectionB = new Authorization(adminColB, administratorFeature, collectionRestB);
|
Authorization authAdminCollectionB = new Authorization(adminColB, administratorFeature, collectionRestB);
|
||||||
|
|
||||||
|
// define authorization that we know not exists
|
||||||
Authorization authAdminBcollectionA = new Authorization(adminColB, administratorFeature, collectionRestA);
|
Authorization authAdminBcollectionA = new Authorization(adminColB, administratorFeature, collectionRestA);
|
||||||
|
|
||||||
getClient(tokenAdminColA).perform(get("/api/authz/authorizations/" + authAdminCollectionA.getID()))
|
getClient(tokenAdminColA).perform(get("/api/authz/authorizations/" + authAdminCollectionA.getID()))
|
||||||
@@ -180,4 +194,74 @@ public class AdministratorFeatureIT extends AbstractControllerIntegrationTest {
|
|||||||
getClient(tokenAdminColB).perform(get("/api/authz/authorizations/" + authAdminBcollectionA.getID()))
|
getClient(tokenAdminColB).perform(get("/api/authz/authorizations/" + authAdminBcollectionA.getID()))
|
||||||
.andExpect(status().isNotFound());
|
.andExpect(status().isNotFound());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void siteWithAdministratorFeatureTest() throws Exception {
|
||||||
|
context.turnOffAuthorisationSystem();
|
||||||
|
|
||||||
|
Community parentCommunity = CommunityBuilder.createCommunity(context)
|
||||||
|
.withName("Test Parent Community")
|
||||||
|
.build();
|
||||||
|
|
||||||
|
Collection collection = CollectionBuilder.createCollection(context, parentCommunity)
|
||||||
|
.withName("Test Collection")
|
||||||
|
.build();
|
||||||
|
|
||||||
|
context.restoreAuthSystemState();
|
||||||
|
|
||||||
|
Site site = siteService.findSite(context);
|
||||||
|
SiteRest siteRest = converterService.toRest(site, DefaultProjection.DEFAULT);
|
||||||
|
CommunityRest communityRest = converterService.toRest(parentCommunity, DefaultProjection.DEFAULT);
|
||||||
|
CollectionRest collectionRest = converterService.toRest(collection, DefaultProjection.DEFAULT);
|
||||||
|
|
||||||
|
// tokens
|
||||||
|
String tokenAdmin = getAuthToken(admin.getEmail(), password);
|
||||||
|
String tokenEperson = getAuthToken(eperson.getEmail(), password);
|
||||||
|
|
||||||
|
|
||||||
|
// define authorizations of Admin that we know must exists
|
||||||
|
Authorization authAdminSite = new Authorization(admin, administratorFeature, siteRest);
|
||||||
|
Authorization authAdminCommunity = new Authorization(admin, administratorFeature, communityRest);
|
||||||
|
Authorization authAdminCollection = new Authorization(admin, administratorFeature, collectionRest);
|
||||||
|
|
||||||
|
// define authorizations of EPerson that we know not exists
|
||||||
|
Authorization authEPersonSite = new Authorization(eperson, administratorFeature, siteRest);
|
||||||
|
Authorization authEpersonCommunity = new Authorization(eperson, administratorFeature, communityRest);
|
||||||
|
Authorization authEpersonCollection = new Authorization(eperson, administratorFeature, collectionRest);
|
||||||
|
|
||||||
|
// define authorizations of Anonymous that we know not exists
|
||||||
|
Authorization authAnonymousSite = new Authorization(null, administratorFeature, siteRest);
|
||||||
|
Authorization authAnonymousCommunity = new Authorization(null, administratorFeature, communityRest);
|
||||||
|
Authorization authAnonymousCollection = new Authorization(null, administratorFeature, collectionRest);
|
||||||
|
|
||||||
|
getClient(tokenAdmin).perform(get("/api/authz/authorizations/" + authAdminSite.getID()))
|
||||||
|
.andExpect(status().isOk())
|
||||||
|
.andExpect(jsonPath("$", Matchers.is(AuthorizationMatcher.matchAuthorization(authAdminSite))));
|
||||||
|
|
||||||
|
getClient(tokenAdmin).perform(get("/api/authz/authorizations/" + authAdminCommunity.getID()))
|
||||||
|
.andExpect(status().isOk())
|
||||||
|
.andExpect(jsonPath("$", Matchers.is(AuthorizationMatcher.matchAuthorization(authAdminCommunity))));
|
||||||
|
|
||||||
|
getClient(tokenAdmin).perform(get("/api/authz/authorizations/" + authAdminCollection.getID()))
|
||||||
|
.andExpect(status().isOk())
|
||||||
|
.andExpect(jsonPath("$", Matchers.is(AuthorizationMatcher.matchAuthorization(authAdminCollection))));
|
||||||
|
|
||||||
|
getClient(tokenEperson).perform(get("/api/authz/authorizations/" + authEPersonSite.getID()))
|
||||||
|
.andExpect(status().isNotFound());
|
||||||
|
|
||||||
|
getClient(tokenEperson).perform(get("/api/authz/authorizations/" + authEpersonCommunity.getID()))
|
||||||
|
.andExpect(status().isNotFound());
|
||||||
|
|
||||||
|
getClient(tokenEperson).perform(get("/api/authz/authorizations/" + authEpersonCollection.getID()))
|
||||||
|
.andExpect(status().isNotFound());
|
||||||
|
|
||||||
|
getClient().perform(get("/api/authz/authorizations/" + authAnonymousSite.getID()))
|
||||||
|
.andExpect(status().isNotFound());
|
||||||
|
|
||||||
|
getClient().perform(get("/api/authz/authorizations/" + authAnonymousCommunity.getID()))
|
||||||
|
.andExpect(status().isNotFound());
|
||||||
|
|
||||||
|
getClient().perform(get("/api/authz/authorizations/" + authAnonymousCollection.getID()))
|
||||||
|
.andExpect(status().isNotFound());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user