diff --git a/src/be/jeffcheasey88/peeratcode/Configuration.java b/src/be/jeffcheasey88/peeratcode/Configuration.java index 2e7a691..a5700a7 100644 --- a/src/be/jeffcheasey88/peeratcode/Configuration.java +++ b/src/be/jeffcheasey88/peeratcode/Configuration.java @@ -19,6 +19,8 @@ public class Configuration { private boolean use_ssl; private String ssl_keystore; private String ssl_keystorePasswd; + + private String users_files; private String token_issuer; private int token_expiration; @@ -143,4 +145,10 @@ public class Configuration { public boolean useSsl(){ return this.use_ssl; } + + public String getUsersFiles(){ + if (users_files == null || users_files.trim().isEmpty()) + users_files = "/tmp/users_files"; + return users_files; + } } \ No newline at end of file diff --git a/src/be/jeffcheasey88/peeratcode/Main.java b/src/be/jeffcheasey88/peeratcode/Main.java index 2ec0190..74dbe24 100644 --- a/src/be/jeffcheasey88/peeratcode/Main.java +++ b/src/be/jeffcheasey88/peeratcode/Main.java @@ -63,19 +63,19 @@ public class Main { } }); - initRoutes(router); + initRoutes(router, config); startWebServer(config, router); } - private static void initRoutes(Router router) { + private static void initRoutes(Router router, Configuration config) { router.register(new ChapterElement(router.getDataBase())); router.register(new ChapterList(router.getDataBase())); router.register(new PuzzleElement(router.getDataBase())); - router.register(new Register(router.getDataBase(), router)); + router.register(new Register(router.getDataBase(), router, config.getUsersFiles())); router.register(new Login(router.getDataBase(), router)); router.register(new Result(router.getDataBase())); - router.register(new PuzzleResponse(router.getDataBase())); + router.register(new PuzzleResponse(router.getDataBase(), config.getUsersFiles())); router.register(new Leaderboard(router.getDataBase())); router.register(new PlayerDetails(router.getDataBase())); router.register(new BadgeDetails(router.getDataBase())); diff --git a/src/be/jeffcheasey88/peeratcode/model/Player.java b/src/be/jeffcheasey88/peeratcode/model/Player.java index 278f5e9..59677f6 100644 --- a/src/be/jeffcheasey88/peeratcode/model/Player.java +++ b/src/be/jeffcheasey88/peeratcode/model/Player.java @@ -16,8 +16,6 @@ import org.json.simple.JSONArray; import org.json.simple.JSONObject; public class Player implements Comparable { - public static final String PATH_TO_CODE = "/home/%s/peer-at-source/"; - private String pseudo; private String email; private String firstname; @@ -101,10 +99,6 @@ public class Player implements Comparable { avatar = newAvatar; } - public String getPathToSourceCode() { - return String.format(PATH_TO_CODE, pseudo); - } - public int getRank() { return rank; } diff --git a/src/be/jeffcheasey88/peeratcode/routes/PuzzleResponse.java b/src/be/jeffcheasey88/peeratcode/routes/PuzzleResponse.java index 2280102..2dda965 100644 --- a/src/be/jeffcheasey88/peeratcode/routes/PuzzleResponse.java +++ b/src/be/jeffcheasey88/peeratcode/routes/PuzzleResponse.java @@ -22,9 +22,11 @@ import be.jeffcheasey88.peeratcode.webserver.User; public class PuzzleResponse implements Response { private final DatabaseRepository databaseRepo; + private final String usersFilesPath; - public PuzzleResponse(DatabaseRepository databaseRepo) { + public PuzzleResponse(DatabaseRepository databaseRepo, String initUsersFilesPath) { this.databaseRepo = databaseRepo; + usersFilesPath = initUsersFilesPath; } @Route(path = "^\\/puzzleResponse\\/([0-9]+)$", type = "POST", needLogin = true) @@ -52,7 +54,7 @@ public class PuzzleResponse implements Response { } private void saveSourceCode(ReceivedResponse received, Player player) throws IOException { - Path path = Paths.get(String.format("%s/puz%04d-%s", player.getPathToSourceCode(), received.getPuzzleId(), received.getFileName())); + Path path = Paths.get(String.format("%s/%s/puz%04d-%s", usersFilesPath, player.getPseudo(), received.getPuzzleId(), received.getFileName())); Files.write(path, received.getSourceCode()); } diff --git a/src/be/jeffcheasey88/peeratcode/routes/Register.java b/src/be/jeffcheasey88/peeratcode/routes/Register.java index 5e65bf4..1e3c4cd 100644 --- a/src/be/jeffcheasey88/peeratcode/routes/Register.java +++ b/src/be/jeffcheasey88/peeratcode/routes/Register.java @@ -22,10 +22,12 @@ public class Register implements Response { private DatabaseRepository databaseRepo; private Router router; + private String usersFilesPath; - public Register(DatabaseRepository databaseRepo, Router router) { + public Register(DatabaseRepository databaseRepo, Router router, String initUsersFilesPath) { this.databaseRepo = databaseRepo; this.router = router; + usersFilesPath = initUsersFilesPath; } @Route(path = "^\\/register$", type = "POST") @@ -80,7 +82,8 @@ public class Register implements Response { } private void createFolderToSaveSourceCode(String pseudo) throws IOException { - Files.createDirectories(Paths.get(String.format(Player.PATH_TO_CODE, pseudo))); + + Files.createDirectories(Paths.get(String.format("%s/%s", usersFilesPath, pseudo))); } }