|
|
|
|
@ -199,15 +199,36 @@ public class FileModule extends BaseHandler implements FileService {
@@ -199,15 +199,36 @@ public class FileModule extends BaseHandler implements FileService {
|
|
|
|
|
return getFile(ex, file); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private boolean postCompanyDirectory(Path path, HttpExchange ex, UmbrellaUser umbrellaUser) { |
|
|
|
|
private boolean postCompanyDirectory(Path path, HttpExchange ex, UmbrellaUser user) throws IOException { |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private boolean postProjectDirectory(Path path, HttpExchange ex, UmbrellaUser umbrellaUser) { |
|
|
|
|
private boolean postProjectDirectory(Path path, HttpExchange ex, UmbrellaUser user) throws IOException { |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private boolean postUserDirectory(Path path, HttpExchange ex, UmbrellaUser umbrellaUser) { |
|
|
|
|
return false; |
|
|
|
|
private boolean postUserDirectory(Path path, HttpExchange ex, UmbrellaUser user) throws IOException { |
|
|
|
|
var userId = path.pop(); |
|
|
|
|
if (userId == null) throw missingFieldException(USER_ID); |
|
|
|
|
long uid; |
|
|
|
|
try { |
|
|
|
|
uid = Long.parseLong(userId); |
|
|
|
|
} catch (NumberFormatException e) { |
|
|
|
|
throw invalidFieldException(PROJECT_ID,"Long"); |
|
|
|
|
} |
|
|
|
|
var filename = "/user/"+uid; |
|
|
|
|
if (!path.empty()) filename += "/"+URLDecoder.decode(path.toString(),UTF_8); |
|
|
|
|
if (uid != user.id() && !fileDb.isPermitted(user,filename)) throw forbidden("You are not allowed to access {0}",filename); |
|
|
|
|
var file = new File(baseDir+filename); |
|
|
|
|
if (file.exists()) throw unprocessable("{0} already exists!",filename); |
|
|
|
|
try { |
|
|
|
|
file.mkdirs(); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
throw unprocessable("Failed to create {0}",filename); |
|
|
|
|
} |
|
|
|
|
Map<String,Object> map = getDirectory(file.getParentFile()); |
|
|
|
|
map.put("title",filename); |
|
|
|
|
return sendContent(ex,map); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|