public function passwordResetAction() { if ($this->_helper->member()) { $this->redirect(Config::get('routes')->profile); } $hash = trim($this->_getParam('hash')); if (empty($hash)) { $this->_helper->flashMessenger(['type' => 'danger', 'text' => $this->translate->_('member_password_reset_link_invalid')]); $this->redirect(Config::get('routes')->login); } $list = new Member\Listing(); $list->setUnpublished(true); $list->setCondition('resetHash = ?', $hash); if (count($list) == 0) { $this->_helper->flashMessenger(['type' => 'danger', 'text' => $this->translate->_('member_password_reset_link_invalid')]); $this->redirect(Config::get('routes')->login); } if ($this->_request->isPost()) { $post = $this->_request->getPost(); /** @var \Member $member */ $member = $list->current(); $result = $member->resetPassword($post); if ($result->isValid()) { $this->_helper->flashMessenger(['type' => 'success', 'text' => $this->translate->_('member_password_reset_success')]); $this->redirect(Config::get('routes')->login); } $this->view->errors = $result->getMessages(); } }
/** * Returns true if and only if $value meets the validation requirements * * If $value fails validation, then this method returns false, and * getMessages() will return an array of messages that explain why the * validation failed. * * @param mixed $value * @return boolean * @throws Zend_Validate_Exception If validation of $value is impossible */ public function isValid($value) { $this->_setValue($value); /** @var Listing $list */ $list = new Listing(); $list->addConditionParam('email = ?', $value); $list->setUnpublished(true); if ($list->count() > 0) { $this->_error(self::EMAIL_EXIST); return false; } return true; }
public function confirmAction() { $hash = trim($this->_getParam('hash')); if (empty($hash)) { $this->_helper->flashMessenger(['type' => 'danger', 'text' => $this->translate->_('member_confirm_link_invalid')]); $this->redirect(Config::get('routes')->login); } $list = new Member\Listing(); $list->setUnpublished(true); $list->setCondition('confirmHash = ?', $hash); if (count($list) == 0) { $this->_helper->flashMessenger(['type' => 'danger', 'text' => $this->translate->_('member_confirm_link_invalid')]); $this->redirect(Config::get('routes')->login); } $member = $list->current(); $member->confirm(); $this->_helper->flashMessenger(['type' => 'success', 'text' => $this->translate->_('member_confirm_success')]); $this->redirect(Config::get('routes')->login); }