use of com.serotonin.m2m2.vo.FileStore in project ma-core-public by infiniteautomation.
the class FileStoreService method deleteFileOrFolder.
public FileStorePath deleteFileOrFolder(String xid, String toDelete, boolean recursive) {
FileStore fileStore = getWithoutPermissionCheck(xid);
ensureEditPermission(Common.getUser(), fileStore);
FileStorePath toDeletePath = getPathWithinFileStore(fileStore, toDelete);
if (toDeletePath.absolutePath.equals(toDeletePath.getFileStoreRoot())) {
throw new FileStoreException(new TranslatableMessage("filestore.deleteRootNotPermitted"));
}
if (!Files.exists(toDeletePath.absolutePath)) {
throw new NotFoundException();
}
try {
if (Files.isDirectory(toDeletePath.absolutePath) && recursive) {
FileUtils.deleteDirectory(toDeletePath.absolutePath.toFile());
} else {
Files.delete(toDeletePath.absolutePath);
}
return toDeletePath;
} catch (NoSuchFileException e) {
throw new NotFoundException();
} catch (Exception e) {
throw new FileStoreException(new TranslatableMessage("filestore.errorDeletingFile"));
}
}
use of com.serotonin.m2m2.vo.FileStore in project ma-core-public by infiniteautomation.
the class FileStoreService method insert.
@Override
public FileStore insert(FileStore vo) throws PermissionException, ValidationException {
FileStore newFilestore = super.insert(vo);
Path newPath = getFileStoreRoot(newFilestore);
try {
Files.createDirectories(newPath);
} catch (IOException e) {
throw new FileStoreException(new TranslatableMessage("filestore.failedToCreateRoot", newFilestore.getXid()), e);
}
return newFilestore;
}
use of com.serotonin.m2m2.vo.FileStore in project ma-core-public by infiniteautomation.
the class FileStoreService method ensureReadAccess.
/**
* @throws IllegalArgumentException if path is not located inside the filestore root
* @throws NotFoundException if filestore was not found
* @throws PermissionException filestore exists but user does not have read access
*/
public void ensureReadAccess(Path path) throws IllegalArgumentException, NotFoundException, PermissionException {
FileStore fileStore = resolveFileStore(path).getFileStore();
ensureReadPermission(Common.getUser(), fileStore);
}
use of com.serotonin.m2m2.vo.FileStore in project ma-core-public by infiniteautomation.
the class FileStoreService method forRead.
/**
* Retrieves the path to a file in the file store, checking that the user has read permission for the file store.
* Does not check if the file exists, only that the filestore exists.
*
* @param xid xid of the user file store, or the storeName of the {@link FileStoreDefinition}
* @throws PermissionException user does not have permission to read from the file store
* @throws NotFoundException file store does not exist
*/
public FileStorePath forRead(String xid, String path) throws PermissionException, NotFoundException {
FileStore fileStore = getWithoutPermissionCheck(xid);
ensureReadPermission(Common.getUser(), fileStore);
return getPathWithinFileStore(fileStore, path);
}
use of com.serotonin.m2m2.vo.FileStore in project ma-core-public by infiniteautomation.
the class FileStoreDefinition method toFileStore.
public FileStore toFileStore() {
FileStore fileStore = new FileStore();
fileStore.setBuiltIn(true);
fileStore.setXid(getStoreName());
// TODO maybe use current user locale?
fileStore.setName(getStoreDescription().translate(Common.getTranslations()));
fileStore.setWritePermission(getWritePermission());
fileStore.setReadPermission(getReadPermission());
return fileStore;
}
Aggregations