Search in sources :

Example 21 with Folder

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;
}
Also used : Account(org.jbei.ice.storage.model.Account) FolderAuthorization(org.jbei.ice.lib.dto.folder.FolderAuthorization) FolderDetails(org.jbei.ice.lib.dto.folder.FolderDetails) Folder(org.jbei.ice.storage.model.Folder)

Example 22 with Folder

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;
}
Also used : FolderDetails(org.jbei.ice.lib.dto.folder.FolderDetails) Folder(org.jbei.ice.storage.model.Folder)

Example 23 with Folder

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();
}
Also used : Folder(org.jbei.ice.storage.model.Folder)

Example 24 with Folder

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;
}
Also used : Group(org.jbei.ice.storage.model.Group) FolderDetails(org.jbei.ice.lib.dto.folder.FolderDetails) Folder(org.jbei.ice.storage.model.Folder)

Example 25 with Folder

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();
}
Also used : Folder(org.jbei.ice.storage.model.Folder) AccountTransfer(org.jbei.ice.lib.account.AccountTransfer)

Aggregations

Folder (org.jbei.ice.storage.model.Folder)31 Account (org.jbei.ice.storage.model.Account)18 FolderDetails (org.jbei.ice.lib.dto.folder.FolderDetails)11 Test (org.junit.Test)9 ArrayList (java.util.ArrayList)7 EntryCreator (org.jbei.ice.lib.entry.EntryCreator)5 Entry (org.jbei.ice.storage.model.Entry)5 Part (org.jbei.ice.storage.model.Part)5 Group (org.jbei.ice.storage.model.Group)4 RemoteAccessModel (org.jbei.ice.storage.model.RemoteAccessModel)3 RemotePartner (org.jbei.ice.storage.model.RemotePartner)3 HashSet (java.util.HashSet)2 AccountTransfer (org.jbei.ice.lib.account.AccountTransfer)2 FolderAuthorization (org.jbei.ice.lib.dto.folder.FolderAuthorization)2 Date (java.util.Date)1 PermissionException (org.jbei.ice.lib.access.PermissionException)1 PermissionsController (org.jbei.ice.lib.access.PermissionsController)1 BulkUploadController (org.jbei.ice.lib.bulkupload.BulkUploadController)1 BulkUploadInfo (org.jbei.ice.lib.bulkupload.BulkUploadInfo)1 AccessPermission (org.jbei.ice.lib.dto.access.AccessPermission)1