public function init() { parent::init(); \Zend_Controller_Action_HelperBroker::addPrefix('Member_Controller_Action_Helper'); // attach default listeners \Pimcore::getEventManager()->attach('member.register.validate', ['\\Member\\Listener\\Register', 'validate'], 0); \Pimcore::getEventManager()->attach('member.password.reset', ['\\Member\\Listener\\Password', 'reset'], 0); if (Config::get('actions')->postRegister) { \Pimcore::getEventManager()->attach('member.register.post', ['\\Member\\Listener\\Register', Config::get('actions')->postRegister], 0); } }
public function requestPasswordReset() { $this->setResetHash($this->createHash()); $this->save(); $doc = Email::getByPath(Config::get('emails')->passwordReset); if (!$doc) { throw new \Exception('No password reset email defined'); } /** @var \Zend_Controller_Request_Http $request */ $request = \Zend_Controller_Front::getInstance()->getRequest(); $email = new Mail(); $email->addTo($this->getEmail()); $email->setDocument($doc); $email->setParams(['host' => sprintf('%s://%s', $request->getScheme(), $request->getHttpHost()), 'member_id' => $this->getId()]); $email->send(); return $this; }
/** * Check if user is logged in. * Redirect to login page with return URL. */ public function requireAuth() { $auth = \Zend_Auth::getInstance(); if ($auth->hasIdentity()) { return; } // login default user for use in admin panel if ($this->_actionController->editmode && Config::get('auth')->adminMemberId) { $member = \Treasurer\Member::getById(Config::get('auth')->adminMemberId); if ($member) { $auth->getStorage()->write($member); } } if (!$auth->hasIdentity()) { $this->getActionController()->redirect(sprintf('%s?back=%s', Config::get('routes')->login, urlencode($this->getRequest()->getRequestUri()))); } }
/** * Callback for 'member.register.post' event. * Sending email with confirmation links. * * @param \Zend_EventManager_Event $event * @return \Member * @throws \Exception */ public static function confirm(\Zend_EventManager_Event $event) { /** @var \Member $member */ $member = $event->getTarget(); $member->setConfirmHash($member->createHash()); $member->save(); $doc = Email::getByPath(Config::get('emails')->registerConfirm); if (!$doc) { throw new \Exception('No confirmation email defined'); } /** @var \Zend_Controller_Request_Http $request */ $request = \Zend_Controller_Front::getInstance()->getRequest(); $email = new Mail(); $email->addTo($member->getEmail()); $email->setDocument($doc); $email->setParams(['host' => sprintf('%s://%s', $request->getScheme(), $request->getHttpHost()), 'member_id' => $member->getId()]); $email->send(); return $member; }
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); }
<link rel="stylesheet" type="text/css" href="/plugins/Member/static/css/website.css"> <div class="member register"> <div class="row"> <div class="col-xs-12 col-sm-8 col-md-6 col-sm-offset-2 col-md-offset-3"> <h2 class="text-center"> <?php echo $this->translate('sign_up'); ?> <?php echo $this->translate('or'); ?> <a href="<?php echo \Member\Plugin\Config::get('routes')->login; ?> "> <?php echo $this->translate('login'); ?> </a> </h2> <div class="row social"> <div class="col-xs-4"> <a href="#" class="btn btn-lg btn-block btn-social btn-facebook"> <i class="fa fa-facebook visible-xs"></i> <span class="hidden-xs">Facebook</span> </a> </div> <div class="col-xs-4">
/** * Check if user is logged in. * Redirect to login page with return URL. */ public function requireAuth() { if (!\Zend_Auth::getInstance()->hasIdentity()) { $this->getActionController()->redirect(sprintf('%s?back=%s', Config::get('routes')->login, urlencode($this->getRequest()->getRequestUri()))); } }
</button> </form> <div class="row"> <div class="col-sm-6"> <div class="checkbox"> <label> <input type="checkbox" value="remember-me"> <?php echo $this->translate('remember_me'); ?> </label> </div> </div> <div class="col-sm-6"> <p class="forgot-pwd"> <a href="<?php echo \Member\Plugin\Config::get('routes')->passwordRequest; ?> "> <?php echo $this->translate('forgot_password?'); ?> </a> </p> </div> </div> </div> </div> </div>
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(); } }
?> <p><?php echo $this->translate('do_you_have_an_account?'); ?> </p> <p> <a href="<?php echo \Member\Plugin\Config::get('routes')->login; ?> " class="btn btn-block btn-success"><?php echo $this->translate('login'); ?> </a> </p> <p><?php echo $this->translate('not_a_member_yet?'); ?> </p> <p> <a href="<?php echo \Member\Plugin\Config::get('routes')->register; ?> " class="btn btn-block btn-success"><?php echo $this->translate('sign_up'); ?> </a> </p> <?php }