Bonjour à toutes et tous,
Je rencontre un petit souci avec le site que je suis en train de développer.
J’utilise FOS en 2 endroits différents:
==> pour la connexion à l’admin
==> pour la création de comptes et la connexion au front.
En ce qui concerne le front, j’ai 2 types d’utilisateurs:
==> auteurs
==> lecteurs
Le souci se situe au niveau du formulaire de login du front: quand je tente de me connecter, je suis redirigée vers le formulaire de login de l’admin.
Ca doit donc être un souci au niveau des routes, mais je ne vois pas où:
Mon fichier security.yml:
Dans le config:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 security: encoders: FOS\UserBundle\Model\UserInterface: sha512 # Site\UserBundle\Entity\User: sha512 # Symfony\Component\Security\Core\User\User: plaintext role_hierarchy: ROLE_ADMIN: ROLE_MEMBER ROLE_READER: ROLE_USER ROLE_AUTHOR: ROLE_USER ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] providers: fos_userbundle: id: fos_user.user_provider.username firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false admin_login: pattern: ^/admin/login$ anonymous: true admin: pattern: ^/ form_login: provider: fos_userbundle check_path: /admin/login_check login_path: /admin/login always_use_default_target_path: true default_target_path: /admin target_path_parameter: _target_path logout: path: /admin/logout target: /admin/login anonymous: true members_login: pattern: ^/user/login$ anonymous: true members: pattern: ^/ form_login: provider: fos_userbundle check_path: /user/login_check login_path: /user/login always_use_default_target_path: true default_target_path: /site target_path_parameter: _target_path logout: path: /user/logout target: /user/login anonymous: true access_control: - { path: ^/user/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/admin/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/admin, role: ROLE_ADMIN } - { path: ^/user/register, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/user/confirmed, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/user/check-email, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/user/confirm, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/user, role: ROLE_USER }
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 # FOSUser fos_user: db_driver: orm firewall_name: members user_class: Site\UserBundle\Entity\User registration: form: type: site_user_registration confirmation: enabled: true from_email: address: info@ddd.be sender_name: DDD site_user: login_routes: site_admin_login: login_check_route: isl_admin_check template: "SiteAdminBundle:Admin:login.html.twig" site_user_login: login_check_route: site_user_check template: « SiteUserBundle:Security:login.html.twig"
SecurityController (dans le UserBundle):
D’autres fichiers rentrent peut-être en compte, mais histoire de ne pas encombre le message, je ne mets ce ceux çi.
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
26
27
28
29 <?php namespace Site\UserBundle\Controller; use Symfony\Component\DependencyInjection\ContainerAware; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Security\Core\SecurityContext; use FOS\UserBundle\Controller\SecurityController as BaseController; class SecurityController extends BaseController { protected function renderLogin(array $data) { $requestAttributes = $this->container->get('request')->attributes; $params = $this->container->getParameter('site_user'); $route = $requestAttributes->get('_route'); if(!isset($params['login_routes'][$route])){ throw new \Exception('La route de connexion '.$route.' n\'est pas définie.'); } $template = $params['login_routes'][$route]['template']; $data['login_check_route'] = $params['login_routes'][$route]['template']; return $this->container->get('templating')->renderResponse($template, $data); } }
Si d’autres fichiers sont nécessaire pour m’aider, merci de le signaler ;-)
D’avance merci pour votre aide.
Partager