Re-add email & pseudo verification
This commit is contained in:
parent
3c423c7122
commit
8a138b52d6
2 changed files with 41 additions and 15 deletions
|
@ -116,7 +116,7 @@ public class Main{
|
|||
|
||||
router.
|
||||
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 ProfileSettings(repo)).
|
||||
register(new ChangePassword(repo)).
|
||||
|
|
|
@ -16,6 +16,7 @@ import java.security.interfaces.RSAPublicKey;
|
|||
import java.util.Base64;
|
||||
import java.util.Base64.Encoder;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.util.regex.Matcher;
|
||||
|
||||
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.repository.DatabaseRepository;
|
||||
import dev.peerat.backend.utils.FormResponse;
|
||||
import dev.peerat.backend.utils.Mail;
|
||||
import dev.peerat.framework.Context;
|
||||
import dev.peerat.framework.HttpReader;
|
||||
import dev.peerat.framework.HttpWriter;
|
||||
|
@ -43,18 +45,21 @@ public class MailConfirmation extends FormResponse {
|
|||
private Encoder encoder;
|
||||
private String gitToken;
|
||||
private Map<String, Integer> playersWaiting;
|
||||
private Mail mail;
|
||||
|
||||
public MailConfirmation(
|
||||
DatabaseRepository databaseRepo,
|
||||
Router<PeerAtUser> router,
|
||||
String initUsersFilesPath,
|
||||
String gitToken,
|
||||
Map<String, Integer> playersWaiting){
|
||||
Map<String, Integer> playersWaiting,
|
||||
Mail mail){
|
||||
this.databaseRepo = databaseRepo;
|
||||
this.router = router;
|
||||
this.usersFilesPath = initUsersFilesPath;
|
||||
this.gitToken = gitToken;
|
||||
this.playersWaiting = playersWaiting;
|
||||
this.mail = mail;
|
||||
try {
|
||||
generator = KeyPairGenerator.getInstance("RSA");
|
||||
generator.initialize(4096);
|
||||
|
@ -91,27 +96,48 @@ public class MailConfirmation extends FormResponse {
|
|||
context.response(400);
|
||||
return;
|
||||
}
|
||||
if(code == checkCode.intValue()){
|
||||
playersWaiting.remove(email);
|
||||
int id = databaseRepo.register(pseudo, email, password, firstname, lastname, "", "", "");
|
||||
if(id >= 0){
|
||||
// createFolderToSaveSourceCode(pseudo);
|
||||
// generateGitKey(email, pseudo, password);
|
||||
context.response(200,
|
||||
"Access-Control-Expose-Headers: Authorization",
|
||||
"Authorization: Bearer " + this.router.createAuthUser(new PeerAtUser(id)));
|
||||
|
||||
boolean pseudoAvailable = databaseRepo.checkPseudoAvailability(pseudo);
|
||||
boolean emailAvailable = databaseRepo.checkEmailAvailability(email);
|
||||
if(pseudoAvailable && emailAvailable){
|
||||
if(code == checkCode.intValue()){
|
||||
playersWaiting.remove(email);
|
||||
int id = databaseRepo.register(pseudo, email, password, firstname, lastname, "", "", "");
|
||||
if(id >= 0){
|
||||
// createFolderToSaveSourceCode(pseudo);
|
||||
// generateGitKey(email, pseudo, password);
|
||||
context.response(200,
|
||||
"Access-Control-Expose-Headers: Authorization",
|
||||
"Authorization: Bearer " + this.router.createAuthUser(new PeerAtUser(id)));
|
||||
}else{
|
||||
context.response(400);
|
||||
JsonMap error = new JsonMap();
|
||||
error.set("username_valid", pseudo);
|
||||
error.set("email_valid", email);
|
||||
writer.write(error.toString());
|
||||
int ncode = codeGenerator();
|
||||
playersWaiting.put(email, ncode);
|
||||
mail.send(email, "Welcome @ Peer @ Code", "Your check code is "+ncode+" !");
|
||||
}
|
||||
}else{
|
||||
context.response(400);
|
||||
JsonMap error = new JsonMap();
|
||||
error.set("username_valid", pseudo);
|
||||
error.set("email_valid", email);
|
||||
writer.write(error.toString());
|
||||
}
|
||||
}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 {
|
||||
|
||||
Files.createDirectories(Paths.get(String.format("%s/%s", usersFilesPath, pseudo)));
|
||||
|
|
Loading…
Add table
Reference in a new issue