use of org.jbei.ice.storage.model.Folder in project ice by JBEI.
the class UserFolder method getFolder.
public FolderDetails getFolder(long folderId) {
Folder folder = DAOFactory.getFolderDAO().get(folderId);
if (folder == null)
throw new IllegalArgumentException("Folder with id " + folderId + " does not exist");
FolderAuthorization folderAuthorization = new FolderAuthorization();
folderAuthorization.expectRead(this.userId, folder);
FolderDetails folderDetails = folder.toDataTransferObject();
Account owner = DAOFactory.getAccountDAO().getByEmail(folder.getOwnerEmail());
if (owner != null) {
folderDetails.setOwner(owner.toDataTransferObject());
}
return folderDetails;
}
use of org.jbei.ice.storage.model.Folder in project ice by JBEI.
the class FolderController method getTransferredFolders.
public ArrayList<FolderDetails> getTransferredFolders(String userId) {
if (!accountController.isAdministrator(userId))
return new ArrayList<>();
List<Folder> transferredFolders = dao.getFoldersByType(FolderType.TRANSFERRED);
ArrayList<FolderDetails> folderDetails = new ArrayList<>();
for (Folder folder : transferredFolders) {
FolderDetails details = folder.toDataTransferObject();
long folderSize = dao.getFolderSize(folder.getId(), null, false);
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 update.
/**
* Updates the folder referenced by the folderId with the passed folder details.
* If the propagate parameter is set (differs from existing folder's value) then the contained entries are updated
* accordingly.
*
* @param userId unique identifier for user making request. Must have write privileges
* @param folderId unique identifier for folder being updated
* @param details new details to update
* @return updated folder's details
* @throws PermissionException if user making request doesn't have the appropriate privileges
*/
public FolderDetails update(String userId, long folderId, FolderDetails details) {
Folder folder = dao.get(folderId);
if (folder == null)
// resource not found
return null;
authorization.expectWrite(userId, folder);
// check if status is being updated first
if (folder.getType() == FolderType.TRANSFERRED && details.getType() == FolderType.PRIVATE) {
return acceptTransferredFolder(userId, folder);
}
if (details.getType() == FolderType.PUBLIC && folder.getType() != FolderType.PUBLIC)
return promoteFolder(userId, folder);
if (details.getType() == FolderType.PRIVATE && folder.getType() != FolderType.PRIVATE)
return demoteFolder(userId, folder);
folder.setModificationTime(new Date());
if (details.getName() != null && !folder.getName().equals(details.getName()))
folder.setName(details.getName());
if (details.isPropagatePermission() != folder.isPropagatePermissions()) {
permissionsController.propagateFolderPermissions(userId, folder, details.isPropagatePermission());
folder.setPropagatePermissions(details.isPropagatePermission());
}
return dao.update(folder).toDataTransferObject();
}
use of org.jbei.ice.storage.model.Folder in project ice by JBEI.
the class FolderController method getPublicFolders.
/**
* Retrieves folders that are shared shared publicly. Note that this is different from
* featured folders that have a type of PUBLIC
*
* @return list of public folders on this site
*/
public ArrayList<FolderDetails> getPublicFolders() {
Group publicGroup = groupController.createOrRetrievePublicGroup();
List<Folder> folders = permissionDAO.getFolders(publicGroup);
ArrayList<FolderDetails> list = new ArrayList<>();
for (Folder folder : folders) {
FolderDetails details = folder.toDataTransferObject();
long folderSize = dao.getFolderSize(folder.getId(), null, true);
details.setCount(folderSize);
list.add(details);
}
Collections.sort(list);
return list;
}
use of org.jbei.ice.storage.model.Folder in project ice by JBEI.
the class FolderController method createTransferredFolder.
public FolderDetails createTransferredFolder(FolderDetails folderDetails) {
Folder folder = new Folder(folderDetails.getName());
AccountTransfer owner = folderDetails.getOwner();
if (owner != null)
folder.setOwnerEmail(owner.getEmail());
else
folder.setOwnerEmail("transferred");
folder.setType(FolderType.TRANSFERRED);
folder.setCreationTime(new Date(folderDetails.getCreationTime()));
folder = dao.create(folder);
return folder.toDataTransferObject();
}
Aggregations