Compare commits
8 commits
e1a750cbe3
...
798702f677
Author | SHA1 | Date | |
---|---|---|---|
798702f677 | |||
a58fd656b5 | |||
092e58b11d | |||
6222d17524 | |||
b20d11b224 | |||
33a23af493 | |||
cfd0114590 | |||
b04bce2be6 |
7 changed files with 27 additions and 16 deletions
|
@ -122,7 +122,7 @@ public class Main{
|
|||
register(new ChangePassword(repo)).
|
||||
register(new ForgotPassword(router, repo, mail)).
|
||||
|
||||
register(new DynamicLogs(repo, router.getLogger())).
|
||||
register(new DynamicLogs(router, repo)).
|
||||
|
||||
register(new ChapterElement(repo)).
|
||||
register(new ChapterList(repo)).
|
||||
|
|
|
@ -83,7 +83,7 @@ public enum DatabaseQuery {
|
|||
GET_PLAYER_DETAILS_BY_PSEUDO(GET_PLAYER_DETAILS, "p.pseudo = ? GROUP BY g.name ORDER BY g.fk_chapter, g.fk_puzzle;"),
|
||||
GET_PLAYER_COMPLETIONS("select c.*, p.name from completions c left join puzzles p on c.fk_puzzle = p.id_puzzle where fk_player = ?;"),
|
||||
GET_PLAYER_RANK("SELECT * FROM (SELECT fk_player, RANK() OVER(ORDER BY SUM(score) DESC) rank FROM completions c LEFT JOIN puzzles puzz on puzz.id_puzzle = c.fk_puzzle LEFT JOIN chapters chap on chap.id_chapter = puzz.fk_chapter LEFT JOIN players p ON p.id_player = c.fk_player WHERE chap.id_chapter > 1 GROUP BY fk_player ORDER BY rank) AS ranks WHERE ranks.fk_player = ?;"),
|
||||
UPDATE_PLAYER_INFO("UPDATE players SET pseudo = ?, email = ?, first_name = ?, last_name = ? WHERE id_player = ?"),
|
||||
UPDATE_PLAYER_INFO("UPDATE players SET pseudo = ?, email = ?, firstname = ?, lastname = ? WHERE id_player = ?"),
|
||||
UPDATE_PLAYER_PASSWORD("UPDATE players SET passwd = ? WHERE id_player = ?"),
|
||||
|
||||
// BADGES
|
||||
|
|
|
@ -12,7 +12,6 @@ import java.util.List;
|
|||
import java.util.SortedSet;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import com.password4j.Hash;
|
||||
import com.password4j.Password;
|
||||
|
||||
import dev.peerat.backend.Configuration;
|
||||
|
@ -240,7 +239,7 @@ public class DatabaseRepository {
|
|||
ResultSet result = statment.executeQuery();
|
||||
if(result.next()) return false;
|
||||
statment = DatabaseQuery.UPDATE_PLAYER_INFO.prepare(this.con);
|
||||
statment.setString(1, player.getPseudo());
|
||||
statment.setString(1, pseudo);
|
||||
statment.setString(2, player.getEmail());
|
||||
statment.setString(3, player.getFirstname());
|
||||
statment.setString(4, player.getLastname());
|
||||
|
|
|
@ -134,8 +134,11 @@ class ReceivedResponse {
|
|||
puzzleId = Integer.parseInt(matcher.group(1));
|
||||
|
||||
List<String> multiPartData = reader.readMultiPartData();
|
||||
if (multiPartData != null && multiPartData.size() > 0) {
|
||||
if (multiPartData != null && multiPartData.size() > 0){
|
||||
this.response = multiPartData.get(0).getBytes();
|
||||
System.out.println("Puzzle response:");
|
||||
System.out.println(Arrays.toString(response));
|
||||
System.out.println(new String(response));
|
||||
if (multiPartData.size() == 3) {
|
||||
this.fileName = multiPartData.get(1);
|
||||
this.sourceCode = multiPartData.get(2).getBytes();
|
||||
|
|
|
@ -13,24 +13,30 @@ import dev.peerat.framework.Locker;
|
|||
import dev.peerat.framework.Locker.Key;
|
||||
import dev.peerat.framework.Response;
|
||||
import dev.peerat.framework.Route;
|
||||
import dev.peerat.framework.Router;
|
||||
import dev.peerat.framework.utils.json.JsonMap;
|
||||
|
||||
public class DynamicLogs implements Response{
|
||||
|
||||
private Router<PeerAtUser> router;
|
||||
private Locker<Context> locker; //Context
|
||||
private DatabaseRepository repo;
|
||||
|
||||
public DynamicLogs(DatabaseRepository repo, Locker<Context> locker){
|
||||
public DynamicLogs(Router<PeerAtUser> router, DatabaseRepository repo){
|
||||
this.router = router;
|
||||
this.locker = router.getLogger();
|
||||
this.repo = repo;
|
||||
this.locker = locker;
|
||||
}
|
||||
|
||||
@RouteDoc(path = "/admin/logs", responseCode = 200, responseDescription = "L'utilisateur peux voir les logs en directe")
|
||||
@RouteDoc(responseCode = 401, responseDescription = "L'utilisateur n'a pas accès à cette ressource")
|
||||
|
||||
@Route(path = "^/admin/logs$", needLogin = true, websocket = true)
|
||||
public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception {
|
||||
Group group = this.repo.getPlayerGroup(context.<PeerAtUser>getUser().getId(), 1);
|
||||
@Route(path = "^/admin/logs$", websocket = true)
|
||||
public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception{
|
||||
JsonMap auth = reader.readJson();
|
||||
PeerAtUser user = this.router.getUser(auth.get("token"));
|
||||
|
||||
Group group = this.repo.getPlayerGroup(user.getId(), 1);
|
||||
if(!group.getName().equalsIgnoreCase("Quarter-Master - Battles PAC x CEI")){
|
||||
context.response(423);
|
||||
return;
|
||||
|
|
|
@ -14,7 +14,6 @@ import dev.peerat.backend.utils.Mail;
|
|||
import dev.peerat.framework.Context;
|
||||
import dev.peerat.framework.HttpReader;
|
||||
import dev.peerat.framework.HttpWriter;
|
||||
import dev.peerat.framework.RequestType;
|
||||
import dev.peerat.framework.Route;
|
||||
import dev.peerat.framework.Router;
|
||||
import dev.peerat.framework.utils.json.JsonMap;
|
||||
|
|
|
@ -6,15 +6,15 @@ import dev.peerat.backend.bonus.extract.RouteDoc;
|
|||
import dev.peerat.backend.model.PeerAtUser;
|
||||
import dev.peerat.backend.model.Player;
|
||||
import dev.peerat.backend.repository.DatabaseRepository;
|
||||
import dev.peerat.backend.utils.FormResponse;
|
||||
import dev.peerat.framework.Context;
|
||||
import dev.peerat.framework.HttpReader;
|
||||
import dev.peerat.framework.HttpWriter;
|
||||
import dev.peerat.framework.RequestType;
|
||||
import dev.peerat.framework.Response;
|
||||
import dev.peerat.framework.Route;
|
||||
import dev.peerat.framework.utils.json.JsonMap;
|
||||
|
||||
public class ProfileSettings implements Response{
|
||||
public class ProfileSettings extends FormResponse{
|
||||
|
||||
private DatabaseRepository repo;
|
||||
|
||||
|
@ -27,7 +27,7 @@ public class ProfileSettings implements Response{
|
|||
|
||||
@Route(path = "^/user/settings$", type = RequestType.POST, needLogin = true)
|
||||
public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception {
|
||||
JsonMap json = reader.readJson();
|
||||
JsonMap json = json(reader);
|
||||
|
||||
String pseudo = json.get("pseudo");
|
||||
String email = json.get("email");
|
||||
|
@ -35,6 +35,11 @@ public class ProfileSettings implements Response{
|
|||
String lastname = json.get("lastname");
|
||||
Player player = repo.getPlayer(context.<PeerAtUser>getUser().getId());
|
||||
|
||||
if(!areValids("pseudo", "firstname", "lastname")){
|
||||
context.response(400);
|
||||
return;
|
||||
}
|
||||
|
||||
if(!player.getPseudo().equals(pseudo)){
|
||||
if(!repo.updatePseudo(context.<PeerAtUser>getUser().getId(), player, pseudo)){
|
||||
context.response(400);
|
||||
|
@ -44,13 +49,12 @@ public class ProfileSettings implements Response{
|
|||
}
|
||||
|
||||
if(!player.getEmail().equals(email)){
|
||||
|
||||
}
|
||||
|
||||
if((!player.getFirstname().equals(firstname)) || (!player.getLastname().equals(lastname))){
|
||||
repo.updateProfile(context.<PeerAtUser>getUser().getId(), player, lastname, firstname);
|
||||
}
|
||||
|
||||
|
||||
context.response(200);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue