raphael 3 years ago
parent
commit
79666f009b

+ 16
- 1
src/Phoenix/Controller/LearningSpace/LoginController.php View File

@@ -15,6 +15,7 @@ use Logipro\Phoenix\Form\CatalogType\CatalogDefinePasswordType;
15 15
 use Logipro\Phoenix\Entity\Account\Constraints\Password\PasswordValidator;
16 16
 use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
17 17
 use Logipro\Phoenix\Service\LoginService;
18
+use Symfony\Component\HttpFoundation\Response;
18 19
 
19 20
 class LoginController extends LearningSpaceController
20 21
 {
@@ -66,7 +67,21 @@ class LoginController extends LearningSpaceController
66 67
 				$manager = $this->getDoctrine()->getManager();
67 68
 				$repository = $manager->getRepository(LearnerAccount::class);
68 69
 
69
-				$learnerAccount = $repository->loadUserByUsername($email);
70
+				try {
71
+					$learnerAccount = $repository->loadUserByUsername($email);
72
+				} catch (\Exception $exp) {
73
+
74
+					$response = new Response('', 409);
75
+
76
+					// token expiré
77
+					$parameters = array(
78
+						'text' => $exp->getMessage(),
79
+						'path' => 'ls_password_recover',
80
+						'go' => $this->translate('catalog_form_catalog_password_title')
81
+					);
82
+					return $this->phxRender('bundles/TwigBundle/Exception/definePassword.html.twig', $parameters, $response);
83
+				}
84
+
70 85
 				if ($learnerAccount) {
71 86
 					//On déclenche l'event si l'adresse email est précisée
72 87
 					if ($learnerAccount->getEmail() != "") {

+ 15
- 18
src/Phoenix/Repository/LearningSpace/LearnerAccountRepository.php View File

@@ -1,4 +1,5 @@
1 1
 <?php
2
+
2 3
 namespace Logipro\Phoenix\Repository\LearningSpace;
3 4
 
4 5
 use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
@@ -25,43 +26,39 @@ class LearnerAccountRepository extends ServiceEntityRepository implements UserLo
25 26
 	}
26 27
 
27 28
 	public function loadUserByUsername($username)
28
-    {
29
+	{
29 30
 		// recherche l'utilisateur par identifiant
30 31
 		$query = $this->createQueryBuilder('u')
31
-		->where('u.username = :username')
32
-		->setParameter('username', $username)
33
-		->getQuery();
32
+			->where('u.username = :username')
33
+			->setParameter('username', $username)
34
+			->getQuery();
34 35
 
35 36
 		// si 1 seul utilisateur trouvé => on le retourne
36 37
 		// si aucun ou plusieur, on regarde l'email
37 38
 		$users = $query->execute();
38
-		if ($users)
39
-		{
39
+		if ($users) {
40 40
 			// multi utilisateur = erreur
41
-			if (count($users) == 1)
42
-			{
41
+			if (count($users) == 1) {
43 42
 				return reset($users);
44 43
 			}
45 44
 		}
46 45
 
47 46
 		// recherche l'utilisateur par email
48
- 		$query = $this->createQueryBuilder('u')
49
-		->where('u.email = :email')
50
-		->setParameter('email', $username)
51
-		->getQuery();
47
+		$query = $this->createQueryBuilder('u')
48
+			->where('u.email = :email')
49
+			->setParameter('email', $username)
50
+			->getQuery();
52 51
 
53 52
 		$users = $query->execute();
54
-		if (!$users)
55
-		{
53
+		if (!$users) {
56 54
 			return null;
57 55
 		}
58 56
 
59 57
 		// multi utilisateur = erreur
60
-		if (count($users) > 1)
61
-		{
62
-            throw new \Exception('Cette adresse email correspond à plusieurs utilisateurs, veuillez saisir votre identifiant.');
58
+		if (count($users) > 1) {
59
+			throw new \Exception('Cette adresse email correspond à plusieurs utilisateurs, veuillez saisir votre identifiant.');
63 60
 		}
64 61
 
65 62
 		return reset($users);
66
-    }
63
+	}
67 64
 }

+ 2
- 3
templates/bundles/TwigBundle/Exception/error404.html.twig View File

@@ -15,10 +15,9 @@
15 15
 			
16 16
 			{% block content %}
17 17
 				{% set text = exception.message %}
18
-				{% if text == '' %}
19
-					{% set text = 'error_404_funny_text'|trans %}
18
+				{% if text != '' %}
19
+					<p class="h3">{{ text }}</p>
20 20
 				{% endif %}
21
-				<p class="h3">{{ text }}</p>
22 21
 
23 22
 				<p class="">
24 23
 					<a href="{{ path('bo_homepage') }}">{{ 'action_go_back_home'|trans }}</a>

Loading…
Cancel
Save