Bonjour à tous,
J'ai un problème assez important à régler utilisant les fonctionnalités d'autentification proposées par Symfony2.
Mon formulaire de connexion est un formulaire Extjs avec un bouton submittant les informations de mon formulaire avec AJAX. Ce formulaire est inclus dans un template twig géré par l'action d'un controlleur.
Voici le bout de code permettant le submit :
Voici le controlleur contenant l'action appelant le formulaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 buttons: [{ text: 'Se connecter', handler: function(){ var form = this.up('form').getForm(); form.submit({ clientValidation: true, url: '{{url}}', success: function(form, action) { //location.href="{{url2}}" } }); } }]
L'url appelée lors de l'appel AJAX mène vers une action ajaxAction dans un controlleur projetController. J'ai édité mon routing.yml de la facon suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 <?php namespace UmanTeam\UmanProjectBundle\Controller; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\Security\Core\SecurityContext, use Symfony\Component\Security\Core\Exception\AuthenticationException; use Symfony\Component\HttpFoundation\Response; class IndexController extends Controller { public function indexAction() { return $this->render( 'UmanTeamUmanProjectBundle:Index:index.html.twig', array( 'url' => $this->generateUrl('ajax', array(),true), 'url2' => $this->generateUrl('projets', array(),true) ) ); } }
J'utilise comme providers les données d'une table utilisateur et j'ai donc édité mon security.yml de la façon suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 login: pattern: / defaults: { _controller: UmanTeamUmanProjectBundle:Index:index } ajax: pattern: /Projets/ajax defaults: { _controller: UmanTeamUmanProjectBundle:Projet:ajax }
Mon problèmes est que l'autentification ne s'effectue jamais et de ce fait je reviens toujours vers ma page d'accueil. Aurais-je manqué quelque chose?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 security: encoders: Symfony\Component\Security\Core\User\User: plaintext UmanTeam\UmanProjectBundle\Entity\Utilisateur: plaintext providers: in_memory: users: user: { password: userpass, roles: [ 'ROLE_USER' ] } admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] } umanteam: entity: { class: UmanTeam\UmanProjectBundle\Entity\Utilisateur, property: utilisateurLogin } frontend: pattern: ^/Projet provider: umanteam form_login: check_path: /Projet/ajax login_path: /
Merci d'ava,ce
Partager