import gr.ebs.gss.client.exceptions.InsufficientPermissionsException;
import gr.ebs.gss.client.exceptions.ObjectNotFoundException;
import gr.ebs.gss.client.exceptions.QuotaExceededException;
+import gr.ebs.gss.server.domain.FileHeader;
+import gr.ebs.gss.server.domain.Folder;
+import gr.ebs.gss.server.domain.Group;
+import gr.ebs.gss.server.domain.Permission;
import gr.ebs.gss.server.domain.User;
-import gr.ebs.gss.server.domain.dto.FileHeaderDTO;
-import gr.ebs.gss.server.domain.dto.FolderDTO;
-import gr.ebs.gss.server.domain.dto.GroupDTO;
-import gr.ebs.gss.server.domain.dto.PermissionDTO;
-import gr.ebs.gss.server.domain.dto.UserDTO;
import java.io.InputStream;
+import java.util.Date;
import java.util.List;
import java.util.Set;
* @return Folder
* @throws ObjectNotFoundException if no Folder or user was found
*/
- public FolderDTO getRootFolder(Long userId) throws ObjectNotFoundException;
+ public Folder getRootFolder(Long userId) throws ObjectNotFoundException;
/**
* Retrieve the folder with the specified ID.
* @throws ObjectNotFoundException if the folder or the user was not found
* @throws InsufficientPermissionsException if ther user does not have read permissions for folder
*/
- public FolderDTO getFolder(Long userId, Long folderId) throws ObjectNotFoundException, InsufficientPermissionsException;
+ public Folder getFolder(Long userId, Long folderId) throws ObjectNotFoundException, InsufficientPermissionsException;
/**
* Returns the user with the specified ID.
public User getUser(Long userId) throws ObjectNotFoundException;
/**
- * Returns the user with the specified ID.
- *
- * @param userId The ID of the User to be found
- * @return The User object
- * @throws ObjectNotFoundException if the user cannot be found
- */
- public UserDTO getUserDTO(Long userId) throws ObjectNotFoundException;
-
- /**
* Returns the group with the specified ID.
*
* @param groupId The ID of the Group to be found
* @return The Group object
* @throws ObjectNotFoundException if the group cannot be found
*/
- public GroupDTO getGroup(Long groupId) throws ObjectNotFoundException;
+ public Group getGroup(Long groupId) throws ObjectNotFoundException;
/**
* Retrieve the list of groups for a particular user.
* @return a List of Groups that belong to the specified User
* @throws ObjectNotFoundException if the user was not found
*/
- public List<GroupDTO> getGroups(Long userId) throws ObjectNotFoundException;
+ public List<Group> getGroups(Long userId) throws ObjectNotFoundException;
/**
* Returns a list of files contained in the folder specified by its id.
* @throws ObjectNotFoundException if the user or the folder cannot be found
* @throws InsufficientPermissionsException
*/
- public List<FileHeaderDTO> getFiles(Long userId, Long folderId, boolean ignoreDeleted) throws ObjectNotFoundException, InsufficientPermissionsException;
+ public List<FileHeader> getFiles(Long userId, Long folderId, boolean ignoreDeleted) throws ObjectNotFoundException, InsufficientPermissionsException;
/**
* Returns a list of users for the specified group
*
* @param userId the ID of the User
* @param groupId the ID of the requested group
- * @return List<UserDTO>
+ * @return List<User>
* @throws ObjectNotFoundException if the user or group was not found, with
* the exception message mentioning the precise problem
*/
- public List<UserDTO> getUsers(Long userId, Long groupId) throws ObjectNotFoundException;
+ public List<User> getUsers(Long userId, Long groupId) throws ObjectNotFoundException;
/**
* Returns a list of users for the specified username
*
* @param username the username of the User
- * @return List<UserDTO>
+ * @return List<User>
*/
- public List<UserDTO> getUsersByUserNameLike(String username);
+ public List<User> getUsersByUserNameLike(String username);
/**
* Creates a new folder with the specified owner, parent folder and name.
* @param userId
* @param parentId
* @param name
+ * @return the new folder
* @throws DuplicateNameException if the specified name already exists in
* the parent folder, as either a folder or file
* @throws ObjectNotFoundException if the user or parent folder was not
* problem
* @throws InsufficientPermissionsException
*/
- public void createFolder(Long userId, Long parentId, String name) throws DuplicateNameException, ObjectNotFoundException, InsufficientPermissionsException;
+ public Folder createFolder(Long userId, Long parentId, String name) throws DuplicateNameException, ObjectNotFoundException, InsufficientPermissionsException;
/**
* Deletes the specified folder if the specified user has the appropriate
* @throws ObjectNotFoundException if the folder or user was not found
* @throws InsufficientPermissionsException
*/
- public List<FolderDTO> getSubfolders(Long userId, Long folderId) throws ObjectNotFoundException, InsufficientPermissionsException;
+ public List<Folder> getSubfolders(Long userId, Long folderId) throws ObjectNotFoundException, InsufficientPermissionsException;
/**
* @return the list of subfolders found
* @throws ObjectNotFoundException if the folder or user was not found
*/
- public List<FolderDTO> getSharedSubfolders(Long userId, Long folderId) throws ObjectNotFoundException;
+ public List<Folder> getSharedSubfolders(Long userId, Long folderId) throws ObjectNotFoundException;
/**
* Modifies the specified folder if the specified user has the appropriate
* @param userId the ID of the current user
* @param folderId the ID of the folder to retrieve
* @param folderName
+ * @param readForAll
+ * @param permissions
* @return the updated folder
* @throws InsufficientPermissionsException if the user does not have the
* appropriate privileges
* @throws DuplicateNameException if the specified name already exists in
* the parent folder, as either a folder or file
*/
- public FolderDTO modifyFolder(Long userId, Long folderId, String folderName) throws InsufficientPermissionsException, ObjectNotFoundException, DuplicateNameException;
+ public Folder updateFolder(Long userId, Long folderId, String folderName,
+ Boolean readForAll,
+ Set<Permission> permissions)
+ throws InsufficientPermissionsException, ObjectNotFoundException,
+ DuplicateNameException;
/**
* Adds a user to the specified group
* @param name the name of the new file
* @param mimeType the MIME type of the file
* @param stream the input stream with the file contents
- * @return The FileHeaderDTO created
+ * @return The FileHeader created
* @throws DuplicateNameException if the specified name already exists in
* the parent folder, as either a folder or file
* @throws ObjectNotFoundException if the user or parent folder was not
* @throws GSSIOException if there was an error while storing the file contents
* @throws InsufficientPermissionsException
*/
- public FileHeaderDTO createFile(Long userId, Long folderId, String name, String mimeType, InputStream stream) throws DuplicateNameException, ObjectNotFoundException, GSSIOException, InsufficientPermissionsException, QuotaExceededException;
+ public FileHeader createFile(Long userId, Long folderId, String name, String mimeType, InputStream stream) throws DuplicateNameException, ObjectNotFoundException, GSSIOException, InsufficientPermissionsException, QuotaExceededException;
/**
* Deletes the specified file in the specified user's namespace.
public Set<String> getUserTags(final Long userId) throws ObjectNotFoundException;
/**
- * Updates name and tags for the specified file
+ * Updates the attributes of the specified file.
*
* @param userId
* @param fileId
* @param name
* @param tagSet a String that contains tags separated by comma
+ * @param modificationDate the modification date
+ * @param versioned the new value of the versioned flag
+ * @param readForAll
+ * @param permissions
+ * @throws DuplicateNameException
* @throws ObjectNotFoundException
* @throws InsufficientPermissionsException
*/
- public void updateFile(Long userId, Long fileId, String name, String tagSet) throws ObjectNotFoundException, InsufficientPermissionsException;
+ public void updateFile(Long userId, Long fileId, String name, String tagSet,
+ Date modificationDate, Boolean versioned, Boolean readForAll,
+ Set<Permission> permissions)
+ throws DuplicateNameException, ObjectNotFoundException, InsufficientPermissionsException;
/**
* Retrieve the contents of the current body for the file
* the exception message mentioning the precise problem
* @throws InsufficientPermissionsException
*/
- public FileHeaderDTO getFile(Long userId, Long fileId) throws ObjectNotFoundException, InsufficientPermissionsException;
+ public FileHeader getFile(Long userId, Long fileId) throws ObjectNotFoundException, InsufficientPermissionsException;
/**
* Get the resource (file or folder) at the specified path in
* the specified user's namespace. The returned object will be of type
- * FileHeaderDTO or FolderDTO.<p><strong>Note:</strong> this method does not
+ * FileHeader or Folder.<p><strong>Note:</strong> this method does not
* receive the current user as a parameter, therefore it is unable to perform
* the necessary permission checks and should <strong>NOT</strong> be directly
* exposed to remote clients. It is the caller's responsibility to verify that
* * @return the list of deleted file header objects
* @throws ObjectNotFoundException if the user cannot be found
*/
- public List<FileHeaderDTO> getDeletedFiles(Long userId) throws ObjectNotFoundException;
+ public List<FileHeader> getDeletedFiles(Long userId) throws ObjectNotFoundException;
/**
* Returns a list of All deleted root folders of a user.
* * @return the list of deleted file header objects
* @throws ObjectNotFoundException if the user cannot be found
*/
- public List<FolderDTO> getDeletedRootFolders(Long userId) throws ObjectNotFoundException;
+ public List<Folder> getDeletedRootFolders(Long userId) throws ObjectNotFoundException;
/**
* Empty Trash by deleting all marked as deleted files and folders
* @param username the username of the new user
* @param name the full name of the new user
* @param mail the e-mail of the new user
+ * @param idp the IdP of the new user
+ * @param idpid the IdP ID of the new user
* @return the newly-created User object
* @throws DuplicateNameException if a user with the same username already exists
* @throws ObjectNotFoundException if no username was provided
*/
- public User createUser(String username, String name, String mail) throws DuplicateNameException, ObjectNotFoundException;
+ public User createUser(String username, String name, String mail,
+ String idp, String idpid, String homeOrg) throws DuplicateNameException,
+ ObjectNotFoundException;
/**
* Updates the authentication token for the specified user.
* @throws ObjectNotFoundException if the user or folder could not be found
* @throws InsufficientPermissionsException
*/
- public Set<PermissionDTO> getFolderPermissions(Long userId, Long folderId) throws ObjectNotFoundException, InsufficientPermissionsException;
-
-
- /**
- * update folder permissions
- * @param userId
- * @param folderId
- * @param permissions
- * @throws ObjectNotFoundException
- * @throws InsufficientPermissionsException
- */
- public void setFolderPermissions(Long userId, Long folderId, Set<PermissionDTO> permissions) throws ObjectNotFoundException, InsufficientPermissionsException;
-
+ public Set<Permission> getFolderPermissions(Long userId, Long folderId) throws ObjectNotFoundException, InsufficientPermissionsException;
/**
* Retrieve file user and group permissions
* @throws ObjectNotFoundException if the user or folder could not be found
* @throws InsufficientPermissionsException
*/
- public Set<PermissionDTO> getFilePermissions(Long userId, Long fileId) throws ObjectNotFoundException, InsufficientPermissionsException;
-
-
- /**
- * update file permissions
- * @param userId
- * @param fileId
- * @param permissions
- * @throws ObjectNotFoundException
- * @throws InsufficientPermissionsException
- */
- public void setFilePermissions(Long userId, Long fileId, Boolean ReadForAll, Set<PermissionDTO> permissions) throws ObjectNotFoundException, InsufficientPermissionsException;
+ public Set<Permission> getFilePermissions(Long userId, Long fileId) throws ObjectNotFoundException, InsufficientPermissionsException;
/**
* Returns a list of All Shared root folders of a user.
* * @return the list of shared root folders
* @throws ObjectNotFoundException if the user cannot be found
*/
- public List<FolderDTO> getSharedRootFolders(Long userId) throws ObjectNotFoundException;
+ public List<Folder> getSharedRootFolders(Long userId) throws ObjectNotFoundException;
/**
* Returns a list of All Shared files of a user.
* * @return the list of shared files
* @throws ObjectNotFoundException if the user cannot be found
*/
- public List<FileHeaderDTO> getSharedFilesNotInSharedFolders(Long userId) throws ObjectNotFoundException;
+ public List<FileHeader> getSharedFilesNotInSharedFolders(Long userId) throws ObjectNotFoundException;
/**
* Returns a list of All Shared root folders of a user that calling user has at least read permissions.
*
* @throws ObjectNotFoundException if the user cannot be found
*/
- public List<FolderDTO> getSharedRootFolders(Long ownerId, Long callingUserId) throws ObjectNotFoundException;
+ public List<Folder> getSharedRootFolders(Long ownerId, Long callingUserId) throws ObjectNotFoundException;
/**
* Returns a list of All Shared files of a user that calling user has at least read permissions..
* @param callingUserId
* @throws ObjectNotFoundException if the user cannot be found
*/
- public List<FileHeaderDTO> getSharedFiles(Long ownerId, Long callingUserId) throws ObjectNotFoundException;
+ public List<FileHeader> getSharedFiles(Long ownerId, Long callingUserId) throws ObjectNotFoundException;
/**
* Remove a user member from a group
* @return the List of users sharing files to user
* @throws ObjectNotFoundException
*/
- public List<UserDTO> getUsersSharingFoldersForUser(Long userId) throws ObjectNotFoundException;
-
- /**
- * Indexes the file meta-data and contents. It actually sends the info to be indexed to a message queue
- * and the actual indexing will be done in the background
- *
- * @param fileId The id of the file to be indexed. The message processor will retreive all file data
- * by using this id
- * @param delete if true the file is removed from the index
- */
- public void indexFile(Long fileId, boolean delete);
+ public List<User> getUsersSharingFoldersForUser(Long userId) throws ObjectNotFoundException;
/**
* Search Files
* @return list of files that match query
* @throws ObjectNotFoundException
*/
- public List<FileHeaderDTO> searchFiles(Long userId, String query) throws ObjectNotFoundException;
+ public List<FileHeader> searchFiles(Long userId, String query) throws ObjectNotFoundException;
/**
* It is used by the Solr mbean to rebuild the index.
*/
- public void rebuildSolrIndex();
+ public String rebuildSolrIndex();
/**
* Search the system for a user with the specified email address.