mirror of
https://github.com/sismics/docs.git
synced 2025-12-13 17:56:20 +00:00
Closes #68: Add contributors list on documents
This commit is contained in:
@@ -40,12 +40,14 @@ import com.google.common.io.ByteStreams;
|
||||
import com.sismics.docs.core.constant.Constants;
|
||||
import com.sismics.docs.core.constant.PermType;
|
||||
import com.sismics.docs.core.dao.jpa.AclDao;
|
||||
import com.sismics.docs.core.dao.jpa.ContributorDao;
|
||||
import com.sismics.docs.core.dao.jpa.DocumentDao;
|
||||
import com.sismics.docs.core.dao.jpa.FileDao;
|
||||
import com.sismics.docs.core.dao.jpa.TagDao;
|
||||
import com.sismics.docs.core.dao.jpa.UserDao;
|
||||
import com.sismics.docs.core.dao.jpa.criteria.DocumentCriteria;
|
||||
import com.sismics.docs.core.dao.jpa.dto.AclDto;
|
||||
import com.sismics.docs.core.dao.jpa.dto.ContributorDto;
|
||||
import com.sismics.docs.core.dao.jpa.dto.DocumentDto;
|
||||
import com.sismics.docs.core.dao.jpa.dto.TagDto;
|
||||
import com.sismics.docs.core.event.DocumentCreatedAsyncEvent;
|
||||
@@ -159,6 +161,17 @@ public class DocumentResource extends BaseResource {
|
||||
document.add("acls", aclList)
|
||||
.add("writable", writable);
|
||||
|
||||
// Add contributors
|
||||
ContributorDao contributorDao = new ContributorDao();
|
||||
List<ContributorDto> contributorDtoList = contributorDao.getByDocumentId(documentId);
|
||||
JsonArrayBuilder contributorList = Json.createArrayBuilder();
|
||||
for (ContributorDto contributorDto : contributorDtoList) {
|
||||
contributorList.add(Json.createObjectBuilder()
|
||||
.add("username", contributorDto.getUsername())
|
||||
.add("email", contributorDto.getEmail()));
|
||||
}
|
||||
document.add("contributors", contributorList);
|
||||
|
||||
return Response.ok().entity(document.build()).build();
|
||||
}
|
||||
|
||||
|
||||
@@ -100,20 +100,36 @@ public class TestAclResource extends BaseJerseyTest {
|
||||
acls = json.getJsonArray("acls");
|
||||
Assert.assertEquals(4, acls.size());
|
||||
|
||||
// Update the document as acl2
|
||||
json = target().path("/document/" + document1Id).request()
|
||||
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, acl2Token)
|
||||
.post(Entity.form(new Form()
|
||||
.param("title", "My new super document 1")), JsonObject.class);
|
||||
Assert.assertEquals(document1Id, json.getString("id"));
|
||||
|
||||
// Get the document as acl2
|
||||
json = target().path("/document/" + document1Id).request()
|
||||
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, acl2Token)
|
||||
.get(JsonObject.class);
|
||||
Assert.assertEquals(document1Id, json.getString("id"));
|
||||
JsonArray contributors = json.getJsonArray("contributors");
|
||||
Assert.assertEquals(2, contributors.size());
|
||||
|
||||
// Delete the ACL WRITE for acl2 with acl2
|
||||
target().path("/acl/" + document1Id + "/WRITE/" + acl2Id).request()
|
||||
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, acl2Token)
|
||||
.delete();
|
||||
.delete(JsonObject.class);
|
||||
|
||||
// Delete the ACL READ for acl2 with acl2
|
||||
target().path("/acl/" + document1Id + "/READ/" + acl2Id).request()
|
||||
// Delete the ACL READ for acl2 with acl2 (not authorized)
|
||||
response = target().path("/acl/" + document1Id + "/READ/" + acl2Id).request()
|
||||
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, acl2Token)
|
||||
.delete();
|
||||
Assert.assertEquals(Status.FORBIDDEN, Status.fromStatusCode(response.getStatus()));
|
||||
|
||||
// Delete the ACL READ for acl2 with acl1
|
||||
target().path("/acl/" + document1Id + "/READ/" + acl2Id).request()
|
||||
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, acl1Token)
|
||||
.delete();
|
||||
.delete(JsonObject.class);
|
||||
|
||||
// Get the document as acl1
|
||||
json = target().path("/document/" + document1Id).request()
|
||||
|
||||
@@ -222,6 +222,9 @@ public class TestDocumentResource extends BaseJerseyTest {
|
||||
tags = json.getJsonArray("tags");
|
||||
Assert.assertEquals(1, tags.size());
|
||||
Assert.assertEquals(tag1Id, tags.getJsonObject(0).getString("id"));
|
||||
JsonArray contributors = json.getJsonArray("contributors");
|
||||
Assert.assertEquals(1, contributors.size());
|
||||
Assert.assertEquals("document1", contributors.getJsonObject(0).getString("username"));
|
||||
|
||||
// Export a document in PDF format
|
||||
Response response = target().path("/document/" + document1Id).request()
|
||||
@@ -279,6 +282,9 @@ public class TestDocumentResource extends BaseJerseyTest {
|
||||
tags = json.getJsonArray("tags");
|
||||
Assert.assertEquals(1, tags.size());
|
||||
Assert.assertEquals(tag2Id, tags.getJsonObject(0).getString("id"));
|
||||
contributors = json.getJsonArray("contributors");
|
||||
Assert.assertEquals(1, contributors.size());
|
||||
Assert.assertEquals("document1", contributors.getJsonObject(0).getString("username"));
|
||||
|
||||
// Deletes a document
|
||||
json = target().path("/document/" + document1Id).request()
|
||||
|
||||
Reference in New Issue
Block a user