1
0
mirror of https://github.com/sismics/docs.git synced 2025-12-14 02:06:25 +00:00

List orphan files

This commit is contained in:
jendib
2015-03-06 21:23:50 +01:00
parent 2347483676
commit d0c259ead2
3 changed files with 29 additions and 11 deletions

View File

@@ -286,18 +286,22 @@ public class FileResource extends BaseResource {
public Response list(
@QueryParam("id") String documentId,
@QueryParam("share") String shareId) throws JSONException {
authenticate();
boolean authenticated = authenticate();
// Check document visibility
try {
DocumentDao documentDao = new DocumentDao();
Document document = documentDao.getDocument(documentId);
ShareDao shareDao = new ShareDao();
if (!shareDao.checkVisibility(document, principal.getId(), shareId)) {
throw new ForbiddenClientException();
if (documentId != null) {
try {
DocumentDao documentDao = new DocumentDao();
Document document = documentDao.getDocument(documentId);
ShareDao shareDao = new ShareDao();
if (!shareDao.checkVisibility(document, principal.getId(), shareId)) {
throw new ForbiddenClientException();
}
} catch (NoResultException e) {
throw new ClientException("DocumentNotFound", MessageFormat.format("Document not found: {0}", documentId));
}
} catch (NoResultException e) {
throw new ClientException("DocumentNotFound", MessageFormat.format("Document not found: {0}", documentId));
} else if (!authenticated) {
throw new ForbiddenClientException();
}
FileDao fileDao = new FileDao();

View File

@@ -218,6 +218,16 @@ public class TestFileResource extends BaseJerseyTest {
JSONObject json = response.getEntity(JSONObject.class);
String file1Id = json.getString("id");
// Get all orphan files
fileResource = resource().path("/file/list");
fileResource.addFilter(new CookieAuthenticationFilter(file2AuthenticationToken));
MultivaluedMapImpl getParams = new MultivaluedMapImpl();
response = fileResource.queryParams(getParams).get(ClientResponse.class);
json = response.getEntity(JSONObject.class);
Assert.assertEquals(Status.OK, Status.fromStatusCode(response.getStatus()));
JSONArray files = json.getJSONArray("files");
Assert.assertEquals(1, files.length());
// Create a document
WebResource documentResource = resource().path("/document");
documentResource.addFilter(new CookieAuthenticationFilter(file2AuthenticationToken));
@@ -242,12 +252,12 @@ public class TestFileResource extends BaseJerseyTest {
// Get all files from a document
fileResource = resource().path("/file/list");
fileResource.addFilter(new CookieAuthenticationFilter(file2AuthenticationToken));
MultivaluedMapImpl getParams = new MultivaluedMapImpl();
getParams = new MultivaluedMapImpl();
getParams.putSingle("id", document1Id);
response = fileResource.queryParams(getParams).get(ClientResponse.class);
json = response.getEntity(JSONObject.class);
Assert.assertEquals(Status.OK, Status.fromStatusCode(response.getStatus()));
JSONArray files = json.getJSONArray("files");
files = json.getJSONArray("files");
Assert.assertEquals(1, files.length());
}
}