use of org.jbei.ice.storage.model.Folder in project ice by JBEI.
the class FolderController method getSharedUserFolders.
/**
* Retrieves folders that have been shared with specified user as an individual or as part of a group.
*
* @param userId User whose shared folders are being retrieved
* @return list of folders meeting the shared criteria
*/
public ArrayList<FolderDetails> getSharedUserFolders(String userId) {
Account account = getAccount(userId);
ArrayList<FolderDetails> folderDetails = new ArrayList<>();
Set<Group> groups = account.getGroups();
groups.remove(groupController.createOrRetrievePublicGroup());
List<Folder> sharedFolders = DAOFactory.getPermissionDAO().retrieveFolderPermissions(account, groups);
if (sharedFolders == null)
return null;
for (Folder folder : sharedFolders) {
FolderDetails details = folder.toDataTransferObject();
details.setType(folder.getType());
long folderSize = dao.getFolderSize(folder.getId(), null, true);
details.setCount(folderSize);
if (folder.getCreationTime() != null)
details.setCreationTime(folder.getCreationTime().getTime());
folderDetails.add(details);
}
return folderDetails;
}
use of org.jbei.ice.storage.model.Folder in project ice by JBEI.
the class FolderController method delete.
/**
* Deletes either a user folder or bulk upload (which is represented as a folder to the user)
*
* @param userId unique identifier for user requesting delete action
* @param folderId unique identifier for folder to be deleted
* @param type type of folder to be deleted (either "UPLOAD" or "PRIVATE")
* @return delete folder details
*/
public FolderDetails delete(String userId, long folderId, FolderType type) {
switch(type) {
case UPLOAD:
BulkUploadController controller = new BulkUploadController();
BulkUploadInfo info = controller.deleteDraftById(userId, folderId);
if (info == null) {
Logger.error("Could not locate bulk upload id " + folderId + " for deletion");
return null;
}
FolderDetails details = new FolderDetails();
details.setId(info.getId());
return details;
case PRIVATE:
case TRANSFERRED:
case SHARED:
Folder folder = dao.get(folderId);
if (folder == null)
return null;
if (!accountController.isAdministrator(userId) && !folder.getOwnerEmail().equalsIgnoreCase(userId)) {
String errorMsg = userId + ": insufficient permissions to delete folder " + folderId;
Logger.warn(errorMsg);
throw new PermissionException(errorMsg);
}
details = folder.toDataTransferObject();
long folderSize = dao.getFolderSize(folderId, null, true);
details.setCount(folderSize);
permissionDAO.clearPermissions(folder);
dao.delete(folder);
return details;
default:
Logger.error("Cannot delete folder of type " + type);
return null;
}
}
use of org.jbei.ice.storage.model.Folder in project ice by JBEI.
the class FolderController method getUserFolders.
public ArrayList<FolderDetails> getUserFolders(String userId) {
Account account = getAccount(userId);
List<Folder> folders = dao.getFoldersByOwner(account);
ArrayList<FolderDetails> folderDetails = new ArrayList<>();
for (Folder folder : folders) {
if (!folder.getOwnerEmail().equalsIgnoreCase(userId))
continue;
FolderDetails details = new FolderDetails(folder.getId(), folder.getName());
long folderSize = dao.getFolderSize(folder.getId(), null, true);
details.setCount(folderSize);
details.setType(folder.getType());
if (folder.getCreationTime() != null)
details.setCreationTime(folder.getCreationTime().getTime());
details.setCanEdit(true);
folderDetails.add(details);
}
return folderDetails;
}
use of org.jbei.ice.storage.model.Folder in project ice by JBEI.
the class FolderDAOTest method testGetFolderSize.
@Test
public void testGetFolderSize() throws Exception {
Account account = AccountCreator.createTestAccount("testGetFolderSize", false);
String email = account.getEmail();
// create test folder
Folder folder = createFolderObject("testGetFolderSize");
folder = dao.create(folder);
Assert.assertNotNull(folder);
List<Entry> entries = new ArrayList<>();
EntryCreator creator = new EntryCreator();
// create 10 entries
for (int i = 0; i < 10; i += 1) {
Part part = new Part();
part.setName("name" + i);
part.setOwnerEmail(email);
part.setAlias("alias" + i);
part.setShortDescription("short description");
Entry entry = creator.createEntry(account, part, null);
entries.add(entry);
}
// add entries to folder
folder = dao.addFolderContents(folder, entries);
Assert.assertEquals(10, dao.getFolderSize(folder.getId(), null, true).intValue());
}
use of org.jbei.ice.storage.model.Folder in project ice by JBEI.
the class FolderDAOTest method testGetFolderContents.
@Test
public void testGetFolderContents() throws Exception {
Account account = AccountCreator.createTestAccount("testGetFolderContents", false);
String email = account.getEmail();
// create test folder
Folder folder = createFolderObject("testGetFolderContents");
folder = dao.create(folder);
Assert.assertNotNull(folder);
List<Entry> entries = new ArrayList<>();
EntryCreator creator = new EntryCreator();
// create 10 entries
for (int i = 0; i < 10; i += 1) {
Part part = new Part();
part.setName("name" + i);
part.setOwnerEmail(email);
part.setAlias("alias" + i);
part.setShortDescription("short description");
Entry entry = creator.createEntry(account, part, null);
entries.add(entry);
}
// add entries to folder
folder = dao.addFolderContents(folder, entries);
Assert.assertNotNull(folder);
}
Aggregations