/** * 当用户忘记了密码 * @param string $email * @return boolean - true 发送给用户系统生成密码, false 没有发送系统生成密码,可能是email地址不正确 */ public function forgotPassword($email) { $result = false; $user = $this->isEmailExist($email, true); if (is_object($user)) { $password = substr(md5(uniqid(time(), true)), rand(0, 16), 8); $user->password = $password; $params = array("username" => $user->username, "password" => $password); $router = Zend_Controller_Front::getInstance()->getRouter(); $params['url'] = $this->_bootstrap_options['site']['domainurl'] . $router->assemble(array(), 'login'); Angel_Model_Email::setCompanyName($this->_bootstrap_options['site']['name']); $result = Angel_Model_Email::sendEmail($this->_container->get('email'), Angel_Model_Email::EMAIL_FORGOT_PASSWORD, $user->email, $params); if ($result) { $this->_dm->persist($user); $this->_dm->flush(); } } else { throw new Angel_Exception_User(Angel_Exception_User::USER_NOT_FOUND); } return $result; }