示例#1
0
文件: Plugin.php 项目: Pegasuz/member
 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);
     }
 }
示例#2
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;
 }
示例#3
0
 /**
  * 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())));
     }
 }
示例#4
0
 /**
  * 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;
 }
示例#5
0
 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);
 }
示例#6
0
<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">
示例#7
0
文件: Member.php 项目: Pegasuz/member
 /**
  * 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())));
     }
 }
示例#8
0
文件: login.php 项目: Pegasuz/member
                </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>
示例#9
0
 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();
     }
 }
示例#10
0
    ?>
    <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 
}