variable verification + security

This commit is contained in:
2019-08-01 14:53:05 +02:00
parent d831ffaff5
commit ff55b409e0
2 changed files with 36 additions and 13 deletions
@@ -32,8 +32,18 @@ class AnswerController extends FOSRestController
*/
public function showAction(Answer $answer)
{
$data = $this->get('jms_serializer')->serialize($answer, 'json', SerializationContext::create()->setGroups(array('answer_detail')));
return new JsonResponse($data, 200, [], true);
$usr = $this->getUser();
$userAnswer = $this->getDoctrine()->getRepository('AppBundle:Answer')->findOneBy(array('user' => $usr, 'id' => $answer->getId()));
if($userAnswer){
$data = $this->get('jms_serializer')->serialize($answer, 'json', SerializationContext::create()->setGroups(array('answer_detail')));
return new JsonResponse($data, 200, [], true);
}
else {
$message = 'Pas de candidature correspondante.';
$status = 'failure';
throw new ResourceValidationException($message,$status);
}
}
/**
@@ -82,9 +92,15 @@ class AnswerController extends FOSRestController
$answer = new Answer($usr, null, 'DRAFT');
$em = $this->getDoctrine()->getManager();
$mediaId = $request->get('mediaId');
$companyId = $request->get('companyId');
$adId = $request->get('adId');
$mediaId = htmlspecialchars($request->get('mediaId'));
$companyId = htmlspecialchars($request->get('companyId'));
$adId = htmlspecialchars($request->get('adId'));
if (!is_numeric($mediaId) || !is_numeric($companyId) || (!is_numeric($adId) && $adId != null) ){
$message = 'Le média, l\'entreprise ou l\'offre ne sont pas au format demandé';
$status = 'failure';
throw new ResourceValidationException($message,$status);
}
// Verify if users have already posted answers
if (isset($adId) && $adId != null){
@@ -99,7 +115,7 @@ class AnswerController extends FOSRestController
throw new ResourceValidationException($message,$status);
}
else if($existAnswer){
$message = 'Vous avez déja postulé pour cette offre ou pour cette entreprise';
$message = 'Vous avez déja postulé pour cette offre ou pour cette entreprise';
$status = 'failure';
throw new ResourceValidationException($message,$status);
@@ -109,6 +125,13 @@ class AnswerController extends FOSRestController
$video = $em->getRepository('AppBundle:Media')->find($mediaId);
$company = $em->getRepository('AppBundle:Company')->find($companyId);
// Verify if company or video exists
if(!$video || !$company ){
$message = 'Pas d\'entreprises ou de vidéos existantes';
$status = 'failure';
throw new ResourceValidationException($message,$status);
}
if (isset($adId) && $adId != null){
$ad = $em->getRepository('AppBundle:Ad')->find($adId);
$answer->setAd($ad);
@@ -55,10 +55,10 @@ class SecurityController extends FOSRestController
*/
public function Register(Request $request)
{
$firstname = $request->get('firstname');
$lastname = $request->get('lastname');
$email = $request->get('email');
$password = $request->get('password');
$firstname = htmlspecialchars($request->get('firstname'));
$lastname = htmlspecialchars($request->get('lastname'));
$email = htmlspecialchars($request->get('email'));
$password = htmlspecialchars($request->get('password'));
if (!isset($firstname) || !isset($lastname) || !isset($email) || !isset($password))
$status = array('status' => "failure", 'message' => 'empty parameters');
@@ -110,11 +110,11 @@ class SecurityController extends FOSRestController
$userManager = $this->get('fos_user.user_manager');
$usr = $this->getUser();
if ($usr !== null){
$newLastName = $request->request->get('lastname');
$newFirstName = $request->request->get('firstname');
$newLastName = htmlspecialchars($request->request->get('lastname'));
$newFirstName = htmlspecialchars($request->request->get('firstname'));
if (!isset($newLastName) || !isset($newFirstName) || $newLastName == null || $newFirstName == null){
$message = 'Vous devez rentrer votre nom et votre prénom pour continuer';
throw new ResourceValidationException($message);
throw new ResourceValidationException($message,'');
} else {
$file = $request->files->get('file');
$usr->setLastName($newLastName);