If I want to create authentication, at first I would use Symfony 1.4 (not 1.0) and then look into the sfGuard how to do that.
On 10 bře, 12:24, Trung Huynh <forrestgu...@gmail.com> wrote: > Hi > > I'm trying to get a login form working with database authentication > and the "right symfony way" of achieving this without using sfGuard. > Overall, I'm trying to comprehend the "way of doing things in > symfony", hopefully you guys can pinpoint me in the right direction. > > action.class.php has a working executeLogin which makes use of lib/ > form/LoginForm.class.php. I can login with a hardcoded dummy code, so > that works well. > > However I'm struggling about how to go with the database > authentication. I've seen examples (symfony 1.0 example) that do the > authentication in the action.class.php/executeLogin(). However. I > don't think that is good since it's isn't the place to do the logic > things, right? > > So I got this in: > > lib/model/doctrine/MemberTable.class.php: > --------------------------------------------------------- > public function getMemberByEmailAndPassword($email,$password) > { > $q = $this->createQuery('m') > ->where('m.email = ?', $email) > ->andWhere('m.password = ?', $password); > > return $q->execute(); > } > --------------------------------------------------------- > > action.class.php: in my public function executeLogin(): > --------------------------------------------------------- > $this->result = > Doctrine_Core::getTable('member')->getMemberByEmailAndPassword($tabform['email'],$tabform['password']); > > --------------------------------------------------------- > > Now I got doctrinecollection member object in $this->result[0]. > I can do $this->result[0]>getNickname(); but I think i'm not doing > this correctly, there must be a better way. > > In this Symfony 1.0 cookbook example they use $user = > UserPeer::doSelectOne($c); and eventually have: > $user->getPassword. > > This Symfony 1.0 Cookbook example makes use of a class UserPeer and > doSelectOne. But it doesn't exist in Symfont 1.4. What are their > equivalents nowadays? > > This example below is pretty much how I want it too but I shall put my > logic code into lib/model/doctrine to conform the MVC pattern. > > Also it makes use of $request->setError('email', 'this user does not > exist'); Is it possible to do this in Symfony 1.4 as well. > > public function executeLogin() > { > // check if the user exists > $c = new Criteria(); > $c->add(UserPeer::LOGIN, $this->getRequestParameter('login')); > $user = UserPeer::doSelectOne($c); > if ($user) > { > // check if the password is correct > if ($this->getRequestParameter('password') == $user->getPassword()) > > { > // sign in > $this->getContext()->getUser()->signIn(); > // proceed to home page > return $this->redirect('main/index'); > } > else > { > $this->getRequest()->setError('password', 'wrong password'); > } > } > else > { > $this->getRequest()->setError('email', 'this user does not > exist'); > } > > // an error was found > return $this->forward('security', 'index'); > > } > > Thanks in advance :) -- If you want to report a vulnerability issue on symfony, please send it to security at symfony-project.com 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