check input on creating

This commit is contained in:
jeffcheasey88 2023-09-26 13:39:12 +02:00
parent 7fb0408b52
commit 89d6e14c9c
4 changed files with 15 additions and 3 deletions

Binary file not shown.

View file

@ -10,14 +10,16 @@ import dev.peerat.backend.model.Chapter;
import dev.peerat.backend.model.Group; 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.backend.utils.FormResponse;
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;
import dev.peerat.framework.Locker; import dev.peerat.framework.Locker;
import dev.peerat.framework.Response; import dev.peerat.framework.Response;
import dev.peerat.framework.Route; import dev.peerat.framework.Route;
import dev.peerat.framework.utils.json.JsonMap;
public class GroupCreate implements Response { public class GroupCreate extends FormResponse {
private Locker<Group> locker; private Locker<Group> locker;
private DatabaseRepository repo; private DatabaseRepository repo;
@ -27,6 +29,8 @@ public class GroupCreate implements Response {
this.repo = repo; this.repo = repo;
this.locker = locker; this.locker = locker;
this.groupDelay = groupDelay; this.groupDelay = groupDelay;
validator("name", "[a-zA-Z0-9&|!?{}\\[\\]%/*\\-+=:;,_#@ ]{3,100}");
} }
@RouteDoc(path = "/groupCreate", responseCode = 200, responseDescription = "Le groupe a été créé") @RouteDoc(path = "/groupCreate", responseCode = 200, responseDescription = "Le groupe a été créé")
@ -35,7 +39,12 @@ public class GroupCreate implements Response {
@Route(path = "^\\/groupCreate$", type = POST, needLogin = true) @Route(path = "^\\/groupCreate$", type = POST, needLogin = 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{
Group newGroup = new Group(reader.readJson()); JsonMap json = json(reader);
if(!areValids("name")){
context.response(403);
return;
}
Group newGroup = new Group(json);
PeerAtUser user = context.getUser(); PeerAtUser user = context.getUser();
if (this.repo.getPlayerGroup(user.getId(), newGroup.getLinkToChapter()) == null) { if (this.repo.getPlayerGroup(user.getId(), newGroup.getLinkToChapter()) == null) {

View file

@ -66,6 +66,9 @@ public class MailConfirmation extends FormResponse {
generator.initialize(4096); generator.initialize(4096);
encoder = Base64.getEncoder(); encoder = Base64.getEncoder();
validator("pseudo", "[a-zA-Z0-9&|!?{}\\[\\]%/*\\-+=:;,_#@ ]{3,100}");
validator("firstname", "^(?>[a-zA-Z]+ ?)+$");
validator("lastname", "^(?>[a-zA-Z]+ ?)+$");
} }
@RouteDoc(path = "/confirmation", responseCode = 200, responseDescription = "L'utilisateur est inscrit") @RouteDoc(path = "/confirmation", responseCode = 200, responseDescription = "L'utilisateur est inscrit")

View file

@ -19,7 +19,7 @@ public abstract class FormResponse implements Response{
} }
public void validator(String key, String regex){ public void validator(String key, String regex){
this.checker.put(key, Pattern.compile(regex)); this.checker.put(key, Pattern.compile(regex, Pattern.CASE_INSENSITIVE));
} }
public <T extends Json> T json(HttpReader reader) throws Exception{ public <T extends Json> T json(HttpReader reader) throws Exception{