public function changepasswordAction()
{
$auth = Zend_Auth::getInstance();
if (!$auth->hasIdentity()) {
return $this->_helper->redirector(
'index',
'auth',
'default'
);
}
$User = new Application_Model_DbTable_User();
$select = $User->select()->where('username = ?', $auth->getIdentity());
$u = $User->fetchRow($select);
$this->_helper->viewRenderer('changepasswordform');
$form = new Application_Form_Changepassword();
if ($u && $form->isValid($this->getRequest()->getPost())) {
$password = $form->getValue('password');
$salt = My_Salt::getSalt();
$u->salt = $salt;
$u->password = md5($password . $salt);
$u->save();
$mail = new My_Mail_Gmail();
$mail->mailNewPassword($u->email, $password);
return $this->_helper->redirector(
'index',
'index',
'default'
);
}
$this->view->form = $form;
}
Listing 37.14. Metoda akcji auth/changepassword
Rozdział 37. Rejestracja użytkowników