merge from prod changment

This commit is contained in:
jeffcheasey88 2023-09-21 19:52:50 +02:00
commit b20d11b224
4 changed files with 52 additions and 23 deletions

View file

@ -116,7 +116,7 @@ public class Main{
router. router.
register(new Register(repo, playersWaiting, mail)). register(new Register(repo, playersWaiting, mail)).
register(new MailConfirmation(repo, router, config.getUsersFiles(), config.getGitToken(), playersWaiting)). register(new MailConfirmation(repo, router, config.getUsersFiles(), config.getGitToken(), playersWaiting, mail)).
register(new Login(repo, router)). register(new Login(repo, router)).
register(new ProfileSettings(repo)). register(new ProfileSettings(repo)).
register(new ChangePassword(repo)). register(new ChangePassword(repo)).

View file

@ -62,15 +62,13 @@ public class Completion{
return tries; return tries;
} }
public void addTry(Puzzle currentPuzzle, byte[] response) { public void addTry(Puzzle currentPuzzle, byte[] response){
if (score <= 0){ if (score <= 0){
tries++; tries++;
System.out.println("Puzzle anwer:"); if (response != null && Arrays.equals(currentPuzzle.getSoluce(), response)){
System.out.println(Arrays.toString(currentPuzzle.getSoluce()));
System.out.println(new String(currentPuzzle.getSoluce()));
if (response != null && Arrays.equals(currentPuzzle.getSoluce(), response)) {
if (tries > 1) { // Loose 5% each try with a minimum of 1 for score if (tries > 1) { // Loose 5% each try with a minimum of 1 for score
score = (int) Math.ceil(currentPuzzle.getScoreMax() * (1 - ((tries - 1) / 20.))); // score = (int) Math.ceil(currentPuzzle.getScoreMax() * (1 - ((tries - 1) / 20.)));
score = currentPuzzle.getScoreMax();
if (score < 1) if (score < 1)
score = 1; score = 1;
} else } else

View file

@ -3,6 +3,7 @@ package dev.peerat.backend.routes.admins;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import dev.peerat.backend.bonus.extract.RouteDoc; import dev.peerat.backend.bonus.extract.RouteDoc;
import dev.peerat.backend.model.Group;
import dev.peerat.backend.model.PeerAtUser; import dev.peerat.backend.model.PeerAtUser;
import dev.peerat.backend.repository.DatabaseRepository; import dev.peerat.backend.repository.DatabaseRepository;
import dev.peerat.framework.Context; import dev.peerat.framework.Context;
@ -27,9 +28,13 @@ public class DynamicLogs implements Response{
@RouteDoc(path = "/admin/logs", responseCode = 200, responseDescription = "L'utilisateur peux voir les logs en directe") @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") @RouteDoc(responseCode = 401, responseDescription = "L'utilisateur n'a pas accès à cette ressource")
@Route(path = "^/admin/logs$", websocket = true) @Route(path = "^/admin/logs$", needLogin = true, websocket = true)
public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception { public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception {
//check if admin Group group = this.repo.getPlayerGroup(context.<PeerAtUser>getUser().getId(), 1);
if(!group.getName().equalsIgnoreCase("Quarter-Master - Battles PAC x CEI")){
context.response(423);
return;
}
Key key = new Key(); Key key = new Key();

View file

@ -16,6 +16,7 @@ import java.security.interfaces.RSAPublicKey;
import java.util.Base64; import java.util.Base64;
import java.util.Base64.Encoder; import java.util.Base64.Encoder;
import java.util.Map; import java.util.Map;
import java.util.Random;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.HttpsURLConnection;
@ -27,6 +28,7 @@ import dev.peerat.backend.bonus.extract.RouteDoc;
import dev.peerat.backend.model.PeerAtUser; import dev.peerat.backend.model.PeerAtUser;
import dev.peerat.backend.repository.DatabaseRepository; import dev.peerat.backend.repository.DatabaseRepository;
import dev.peerat.backend.utils.FormResponse; import dev.peerat.backend.utils.FormResponse;
import dev.peerat.backend.utils.Mail;
import dev.peerat.framework.Context; import dev.peerat.framework.Context;
import dev.peerat.framework.HttpReader; import dev.peerat.framework.HttpReader;
import dev.peerat.framework.HttpWriter; import dev.peerat.framework.HttpWriter;
@ -43,18 +45,21 @@ public class MailConfirmation extends FormResponse {
private Encoder encoder; private Encoder encoder;
private String gitToken; private String gitToken;
private Map<String, Integer> playersWaiting; private Map<String, Integer> playersWaiting;
private Mail mail;
public MailConfirmation( public MailConfirmation(
DatabaseRepository databaseRepo, DatabaseRepository databaseRepo,
Router<PeerAtUser> router, Router<PeerAtUser> router,
String initUsersFilesPath, String initUsersFilesPath,
String gitToken, String gitToken,
Map<String, Integer> playersWaiting){ Map<String, Integer> playersWaiting,
Mail mail){
this.databaseRepo = databaseRepo; this.databaseRepo = databaseRepo;
this.router = router; this.router = router;
this.usersFilesPath = initUsersFilesPath; this.usersFilesPath = initUsersFilesPath;
this.gitToken = gitToken; this.gitToken = gitToken;
this.playersWaiting = playersWaiting; this.playersWaiting = playersWaiting;
this.mail = mail;
try { try {
generator = KeyPairGenerator.getInstance("RSA"); generator = KeyPairGenerator.getInstance("RSA");
generator.initialize(4096); generator.initialize(4096);
@ -91,6 +96,10 @@ public class MailConfirmation extends FormResponse {
context.response(400); context.response(400);
return; return;
} }
boolean pseudoAvailable = databaseRepo.checkPseudoAvailability(pseudo);
boolean emailAvailable = databaseRepo.checkEmailAvailability(email);
if(pseudoAvailable && emailAvailable){
if(code == checkCode.intValue()){ if(code == checkCode.intValue()){
playersWaiting.remove(email); playersWaiting.remove(email);
int id = databaseRepo.register(pseudo, email, password, firstname, lastname, "", "", ""); int id = databaseRepo.register(pseudo, email, password, firstname, lastname, "", "", "");
@ -106,10 +115,27 @@ public class MailConfirmation extends FormResponse {
error.set("username_valid", pseudo); error.set("username_valid", pseudo);
error.set("email_valid", email); error.set("email_valid", email);
writer.write(error.toString()); writer.write(error.toString());
int ncode = codeGenerator();
playersWaiting.put(email, ncode);
mail.send(email, "Welcome @ Peer @ Code", "Your check code is "+ncode+" !");
} }
}else{ }else{
context.response(400); context.response(400);
} }
}else{
context.response(400);
JsonMap error = new JsonMap();
error.set("username_valid", pseudo);
error.set("email_valid", email);
writer.write(error.toString());
}
}
private int codeGenerator(){
int min = 1000;
int max = 9999;
return new Random().nextInt((max-min)) + min;
} }
private void createFolderToSaveSourceCode(String pseudo) throws IOException { private void createFolderToSaveSourceCode(String pseudo) throws IOException {