|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||
|
Membre régulier
![]() |
Bonjour à tous,
Je suis en train d'installer sfDoctrineGuardPlugin. Tout se passe bien jusqu'à ce que j'essaye d'appeler mon formulaire de login dans un composant. J'obtiens cette erreur: Code :
The component does not exist: "sfGuardAuth", "signin". Code :
Code :
Merci de votre aide ps: les "symfony cc" n'ont rien changé à la situation... |
||||
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Développeur Web Inscription : mars 2005 Messages : 769 ![]() |
Il n'y a en effet aucun composant dans sfGuardAuth. Si tu veux afficher le formulaire, il faut inclure le partial _signin_form.php. Voir le code de signinSuccess.php pour référence. Si tu veux invoquer un composant que tu as écrit, il faut ajouter la méthode et les templates requis dans actions/components.class.php.
|
|
|
10
|
|
|
#3 |
|
Membre habitué
![]() Baptiste NaudinatDéveloppeur Web Inscription : mai 2011 Messages : 70 ![]() |
/fonce vérifier dans un plugin
... ... ... Ding ! Code :
<?php include_component('sfGuardAuth', 'signin_form') ?>
|
|
|
10
|
|
|
#4 | ||
|
Membre régulier
![]() |
Hello,
Parfait ca fonctionne bien Dans mon template j'ai un endroit où j'ai : Code :
Maintenant mon formulaire de login s'affiche à ces deux endroit ! De plus, les erreurs (bad login, et cie) s'affiche au niveau du "$sf_content" et non à l'endroit de mon composant ! Des idées ? D'avance merci ! Et bonne soirée |
||
|
00
|
|
|
#5 | ||
|
Membre habitué
![]() Baptiste NaudinatDéveloppeur Web Inscription : mai 2011 Messages : 70 ![]() |
Tu peux faire quelque chose comme
Code :
Par contre pour aller plus loin, à mon avis c'est la manière dont sont organisées tes pages (circuit de navigation), ainsi que la sécurité associée, qui doivent être réfléchis plus en avant. |
||
|
|
10
|
|
|
#6 | |
|
Membre chevronné
![]() Développeur Web Inscription : mars 2005 Messages : 769 ![]() |
Citation:
|
|
|
|
00
|
|
|
#7 |
|
Membre régulier
![]() |
Merci pour vos réponses.
@Maerlyn31 : ce n'est pas tout à fait ca, je me suis mal exprimé je pense. D'avance merci ! Bonne journée à tous. |
|
00
|
|
|
#8 | ||
|
Membre habitué
![]() Baptiste NaudinatDéveloppeur Web Inscription : mai 2011 Messages : 70 ![]() |
@Herode : sfGuardAuthComponents hérite de BasesfGuardAuthComponents, qui se trouve dans le répertoire lib juste a côté, et qui contient une méthode "executeSignin_form()"
@Khand : Je n'ai jamais testé d'implémentation de ce genre, donc un peu au pif ^^ Il doit y avoir, dans ton fichier settings.yml, deux paramètres que tu as défini lors de l'installation de DoctrineGuarduser : Code :
J'ai jamais testé ce genre de surcharge avec DoctrineGuard par contre, tiens moi au courant |
||
|
|
30
|
|
|
#9 |
|
Membre chevronné
![]() Développeur Web Inscription : mars 2005 Messages : 769 ![]() |
|
|
|
00
|
|
|
#10 | ||
|
Membre régulier
![]() |
Bonjour,
Alors, ca marche bien ! J'ai donc redirigé vers une page du genre "authentification requise". Maintenant un nouveau problème apparait à l'horizon. Lorsque volontairement je rentre des mauvaises valeurs de login, le message d'erreur ("The username and/or password is invalid.") apparait dans mon contenu, et fait donc apparaitre avec lui le formulaire de login précédemment caché. ![]() Il faut donc que mes messages d'erreur apparaissent dans mon "composant" et non dans le formulaire qui se trouve dans mon contenu. Mhhh mais comment ? Code :
Merci pour votre aide ! Khand |
||
|
00
|
|
|
#11 |
|
Membre habitué
![]() Baptiste NaudinatDéveloppeur Web Inscription : mai 2011 Messages : 70 ![]() |
Bon on aura appris un truc au moins : utiliser le component de sfGuardAuth, c'est un coup à faire péter le WTFmeter dans le rouge
![]() Je viens de regarder le plugin plus en détail, ce comportement est "normal" : qu'il soit appelé par l'action ou par le component, dans tous les cas le formulaire est rendu par _signin_form.php. Or, l'action du formulaire est écrite comme suit : Ce qui fait que lorsqu'on envoie le formulaire, on est automatiquement envoyé vers l'action executeSignin, dans BasesfGuardAuthActions. Dans tous les cas, je vois deux choses à faire pour avancer : 1°) Modifier le formulaire pour qu'il pointe vers la page courante plutôt que vers l'action "signin". Pour faire ça il te faut créer dans ton application un module sfGuardAuth, contenant un fichier templates/_signin_form.php qui viendra surcharger celui par défaut. 2°) Surcharger aussi l'action du component (de la même manière que pour le template, en créant dans ton module sfGuardAuth de ton appli le fichier actions/components.class.php) pour la rendre plus intelligente : à mon avis, le plus simple est de t'inspirer du code du fichier plugins/sfDoctrineGuard/modules/sfGuardAuth/lib/BasesfGuardAuthActions qui contient l'action par défaut : il te faut dans ton component personalisé créer une méthode executeSignin qui contient ce code, avec des redirections adaptées à ton circuit utilisateur. Bon courage en tout cas ^^ |
|
|
10
|
|
|
#12 |
|
Membre régulier
![]() |
Salut,
Je n'ose même pas t'avouer que j'aimerais par la suite faire fonctionner ca sous AJAX Bon je vais un peu tester ca, mais bon ... j'avoue avoir un peu de mal à trouver une bonne documentation pour ce plugin ! (Mise à part le readme). Question de débutant : quelle est la meilleure pratique pour la surcharge d'un plugin ? A l'intérieur ou a l'extérieur de ce dernier ? (Si à l'extérieur, quel dossier ? ) Encore merci pour l'aide ! Khand ! |
|
00
|
|
|
#13 | ||
|
Membre habitué
![]() Baptiste NaudinatDéveloppeur Web Inscription : mai 2011 Messages : 70 ![]() |
Normal
![]() Pour l'Ajax ce n'est pas le plus dur, deux ou trois ligne de code dans ton action pour corriger ce que tu renvoie suffiront, le reste c'est du javascript. Pour ma part j'utilise depuis peu jQuery Form Plugin il tourne super bien (associe un formulaire à un comportement AJAX). Pourla surcharge, facile aussi il n'y a qu'une seule bonne manière de faire avec Symfony, c'est de surcharger à l'extérieur du plugin. On ne dois jamais toucher au code d'un plugin ou au conde dans lib/vendor. C'est à dire que tu dois avoir l'archi suivante : Code :
|
||
|
|
20
|
|
|
#14 |
|
Membre régulier
![]() |
Salut,
Pour la surcharge : C'est bien ce qu'il me semblait Pour l'ajax : tu utilises ton formulaire de login dans un composant aussi alors ? De quelle manière et où l'intègre-tu ? Dans un module/action dédié Toute bonne journée et merci. |
|
00
|
|
|
#15 | ||||||
|
Membre habitué
![]() Baptiste NaudinatDéveloppeur Web Inscription : mai 2011 Messages : 70 ![]() |
Je n'ai jamais fait ce genre de manip, par contre ça m'interessait pour un autre projet avec un slider jQuery, en fait le component est pas si dur à écrire :p
Dans apps/tonAppli/modules/sfGuardAuth/actions/components.class.php Code :
Code :
Code :
|
||||||
|
|
20
|
|
|
#16 |
|
Membre régulier
![]() |
Salut,
Impeccable, je vais tester tout ça en rentrant ce soir ! Merci merci, je te tiens au courant lors que j'ai réussi à intégrer cette solution Bonne fin d'après midi/soirée.
|
|
00
|
|
|
#17 | ||||
|
Membre régulier
![]() |
Salut !
Grrr je bloque sur une erreur (encore) : Code :
Ceci donc : Code :
On est définitivement pas ami avec sfGuard en ce moment ![]() Merci d'avance |
||||
|
00
|
|
|
#18 |
|
Membre habitué
![]() Baptiste NaudinatDéveloppeur Web Inscription : mai 2011 Messages : 70 ![]() |
Partial et nom de méthode sont OK, par contre je pense que ce doit être
Code :
class sfGuardAuthComponents extends BasesfGuardAuthComponents !
|
|
|
20
|
|
|
#19 |
|
Membre régulier
![]() |
Salut,
Alors on avance bien ! Ca fonctionne lorsque le couple login/password est valide. Mais par contre, quand le couple n'est pas juste, l'erreur "bad login..." s'affiche non pas au niveau du composant, mais au niveau du $sf_content (dans template) Mhhhh ... des idées ? Merchi ! |
|
00
|
|
|
#20 |
|
Membre habitué
![]() Baptiste NaudinatDéveloppeur Web Inscription : mai 2011 Messages : 70 ![]() |
Humm ...
Avec Firebug ou autre, peux-tu avoir la requête qui est exécutée lors d'une soumission du formulaire (page demandée + paramètres) ? Puis avec la debug toolbar, quelques détails sur le retour (surtout "config/reponse" et "view") ? On s'égare un peu là j'ai l'impression, tout ça pour en revenir au comportement de hier matin c'est blasant |
|
|
20
|
Copyright © 2000-2012 - www.developpez.com