root/trunk/apps/main/lib/myGuardUserValidator.class.php

Revision 2, 1.7 kB (checked in by nperriault, 2 years ago)

First commit of the extracted code from production, I hope no passwd has been forgotten :-)

Line 
1 <?php
2 class myGuardUserValidator extends sfValidator
3 {
4
5   public function initialize($context, $parameters = null)
6   {
7     // initialize parent
8     parent::initialize($context);
9
10     // set defaults
11     $this->getParameterHolder()->set('username_error', 'Username or password is not valid.');
12     $this->getParameterHolder()->set('inactive_error', 'Account has not been activated yet.');
13     $this->getParameterHolder()->set('password_field', 'password');
14     $this->getParameterHolder()->set('remember_field', 'remember');
15
16     $this->getParameterHolder()->add($parameters);
17
18     return true;
19   }
20
21   public function execute(&$value, &$error)
22   {
23     $password_field = $this->getParameterHolder()->get('password_field');
24     $password = $this->getContext()->getRequest()->getParameter($password_field);
25
26     $remember = false;
27     $remember_field = $this->getParameterHolder()->get('remember_field');
28     $remember = $this->getContext()->getRequest()->getParameter($remember_field);
29
30     $username = $value;
31     
32     $c = new Criteria();
33     $c->add(sfGuardUserPeer::USERNAME, $username);
34     $user = sfGuardUserPeer::doSelectOne($c);
35
36     // user exists?
37     if ($user)
38     {
39       // password is ok?
40       if (!$user->checkPassword($password))
41       {
42         $error = $this->getParameterHolder()->get('password_error');
43         return false;
44       }
45       
46       // user is active?
47       if (!$user->getIsActive())
48       {
49         $error = $this->getParameterHolder()->get('inactive_error');
50         return false;
51       }
52       
53       $this->getContext()->getUser()->signIn($user, $remember);
54       return true;
55     }
56
57     $error = $this->getParameterHolder()->get('username_error');
58     return false;
59   }
60 }
61
Note: See TracBrowser for help on using the browser.