I've written a tutorial for login using email for Symfony 1.2 and sfGuardPlugin, but it is for Propel. But I think most of it would be similar for Doctrine.
Go to http://bluehorn.co.nz/2009/06/12/symfony-12-propel-and-sfguardplugin-email-login/ On Thu, May 7, 2009 at 4:41 AM, Gary Rojas Hilario<gary.r...@gmail.com> wrote: > > I'm a newby using Symfony 1.2 but I think you are implementing a > validator based on symfony 1.0 if you are sure that this is correct > try by editing the file: > plugins/sfDoctrineGuardPlugin/lib/form/doctrine/base/BasesfGuardFormSignin.class.php > > change the following line: > this->validatorSchema->setPostValidator(new sfGuardValidatorUser()); > > by: > $this->validatorSchema->setPostValidator(new sfGuardUserByEmailValidator ()); > > > Regards, > > Gary Rojas > > 2009/5/5 justin_davis <jdavis1...@gmail.com>: >> >> Hey all, >> >> I'm using Symfony 1.2 and Doctrine, with the sfDoctrineGuard plugin. >> I have a table for profile information called sfDoctrineGuardProfile. >> Creating a new user and profile works great. >> >> I want the user to be able to log in with their email address, instead >> of a username. I set the username field in the sfDoctrineGuard schema >> to allow null values. I found an email signin validation script here >> (http://bluehorn.co.nz/2009/04/29/implementing-email-login-with- >> sfguardplugin/) and modified it to work with doctrine. The email >> validation is as follows: >> >> class sfGuardUserByEmailValidator extends sfValidator >> { >> public function initialize($context, $parameters = null) >> { >> // initialize parent >> parent::initialize($context); >> >> // set defaults >> $this->getParameterHolder()->set(’username_error’, ‘Email or password >> is not valid.’); >> $this->getParameterHolder()->set(’password_field’, ‘password’); >> $this->getParameterHolder()->set(’remember_field’, ‘remember’); >> >> $this->getParameterHolder()->add($parameters); >> >> return true; >> } >> >> public function execute(&$value, &$error) >> { >> $password_field = $this->getParameterHolder()->get(’password_field’); >> $password = $this->getContext()->getRequest()->getParameter >> ($password_field); >> >> $remember = false; >> $remember_field = $this->getParameterHolder()->get(’remember_field’); >> $remember = $this->getContext()->getRequest()->getParameter >> ($remember_field); >> >> $email = $value; >> >> $profile = sfGuardUserProfileTable::retrieveByEmail($email); >> if (!$profile) return false; >> >> $user = $profile->getsfGuardUser(); >> >> // user exists and active? >> if ($user and $user->getIsActive()) >> { >> // password is ok? >> if ($user->checkPassword($password)) >> { >> $this->getContext()->getUser()->signIn($user, $remember); >> >> return true; >> } >> } >> >> $error = $this->getParameterHolder()->get(’username_error’); >> >> return false; >> } >> } >> >> How do I make sfGuardAuth use this validator instead of the default >> one? I tried, per the blog post, creating a signin.yml file with the >> following values: >> >> methods: >> post: [username, password] >> >> names: >> username: >> required: true >> required_msg: Your username is required >> validators: [userValidator] >> >> password: >> required: true >> required_msg: Your password is required >> >> userValidator: >> class: sfGuardUserByEmailValidator >> param: >> password_field: password >> remember_field: remember >> >> Placed that in apps/frontend/modules/sfGuardAuth/validate/signin.yml >> and it doesn't seem to be working. I'm still getting username/ >> password errors, instead of email/password errors. >> >> Basically, how do I override the standard sfGuardAuth validator and >> substitute this one? >> >> Thanks so much! >> >> Justin >> > >> > > > > -- Blue Horn Ltd - System Development http://bluehorn.co.nz --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "symfony users" group. To post to this group, send email to symfony-users@googlegroups.com To unsubscribe from this group, send email to symfony-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en -~----------~----~----~----~------~----~------~--~---