Beispiel #1
0
 /**
  * Default password reset validation.
  *
  * You can provide your own validation by attaching callback to
  * 'member.password.reset' event.
  *
  * @param \Zend_EventManager_Event $event
  * @return \Zend_Filter_Input
  */
 public static function reset(\Zend_EventManager_Event $event)
 {
     $data = $event->getParam('data');
     $input = new \Zend_Filter_Input(['*' => ['StringTrim', 'StripTags']], ['password' => [new \Zend_Validate_StringLength(6), 'PasswordStrength', 'presence' => 'required'], 'password_confirm' => [new \Zend_Validate_Callback(function ($v) use($data) {
         return $v === $data['password'];
     }), 'presence' => 'required', 'messages' => 'Password do not match']], $data, [\Zend_Filter_Input::VALIDATOR_NAMESPACE => 'Member_Validate']);
     return $input;
 }
Beispiel #2
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;
 }
 /**
  * system.console.init event handler
  *
  * @param \Zend_EventManager_Event $e
  */
 public function handleSystemConsoleInitEvent(\Zend_EventManager_Event $e)
 {
     /** @var Application $application */
     $application = $e->getTarget();
     $application->addCommands($this->getConsoleCommands());
 }
 public function testTriggerCanTakeAnOptionalCallbackArgumentToEmulateTriggerUntil()
 {
     $this->events->attach(__FUNCTION__, array($this, 'returnEvent'));
     // Four scenarios:
     // First: normal signature:
     $responses = $this->events->trigger(__FUNCTION__, $this, array(), array($this, 'returnOnEvent'));
     $this->assertTrue($responses->stopped());
     // Second: Event as $argv parameter:
     $event = new Zend_EventManager_Event();
     $responses = $this->events->trigger(__FUNCTION__, $this, $event, array($this, 'returnOnEvent'));
     $this->assertTrue($responses->stopped());
     // Third: Event as $target parameter:
     $event = new Zend_EventManager_Event();
     $event->setTarget($this);
     $responses = $this->events->trigger(__FUNCTION__, $event, array($this, 'returnOnEvent'));
     $this->assertTrue($responses->stopped());
     // Fourth: Event as $event parameter:
     $event = new Zend_EventManager_Event();
     $event->setTarget($this);
     $event->setName(__FUNCTION__);
     $responses = $this->events->trigger($event, array($this, 'returnOnEvent'));
     $this->assertTrue($responses->stopped());
 }
Beispiel #5
0
 /**
  * @param \Zend_EventManager_Event $e
  * @return AbstractElement
  * @throws \Exception
  */
 private static function extractElementFromEvent(\Zend_EventManager_Event $e)
 {
     $element = $e->getParam("object");
     if (empty($element)) {
         $element = $e->getParam("asset");
     }
     if (empty($element)) {
         $element = $e->getParam("document");
     }
     if (empty($element)) {
         throw new \Exception("No element found in event");
     }
     return $element;
 }
 /**
  * @param \Zend_EventManager_Event $e
  */
 public function preDispatch(\Zend_EventManager_Event $e)
 {
     $e->getTarget()->registerPlugin(new Controller\Plugin\Frontend());
 }
 public function initController(\Zend_EventManager_Event $e)
 {
     $controller = $e->getTarget();
     $this->container->injectOn($controller);
 }