|
|
|
|
@ -131,7 +131,25 @@ public class FileModule extends BaseHandler implements FileService {
@@ -131,7 +131,25 @@ public class FileModule extends BaseHandler implements FileService {
|
|
|
|
|
return map; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private boolean getUserFiles(Path path, HttpExchange ex, UmbrellaUser user) { |
|
|
|
|
return false; |
|
|
|
|
private boolean getUserFiles(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} does not exist!",filename); |
|
|
|
|
if (file.isDirectory()){ |
|
|
|
|
Map<String,Object> map = getDirectory(file); |
|
|
|
|
map.put("title",filename); |
|
|
|
|
return sendContent(ex,map); |
|
|
|
|
} |
|
|
|
|
return getFile(ex, file); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|