Example #1
0
 public function inAction()
 {
     if (!$this->getRequest()->isPost()) {
         // just show the login form
         return array();
     }
     $username = $this->params()->fromPost('username');
     $password = $this->params()->fromPost('password');
     $auth = $this->serviceLocator->get('auth');
     $authAdapter = $auth->getAdapter();
     // below we pass the username and the password to the authentication adapter for verification
     $authAdapter->setIdentity($username);
     $authAdapter->setCredential($password);
     // here we do the actual verification
     $result = $auth->authenticate();
     $isValid = $result->isValid();
     if ($isValid) {
         // upon successful validation the getIdentity method returns
         // the user entity for the provided credentials
         $user = $result->getIdentity();
         // @todo: upon successful validation store additional information about him in the auth storage
         $this->flashmessenger()->addSuccessMessage(sprintf('Welcome %s. You are now logged in.', $user->getName()));
         return $this->redirect()->toRoute('user/default', array('controller' => 'account', 'action' => 'me'));
     } else {
         $event = new EventManager('user');
         $event->trigger('log-fail', $this, array('username' => $username));
         return array('errors' => $result->getMessages());
     }
 }
Example #2
0
 protected function trigger($event, $values, $nameForReturnValue)
 {
     if (!$this->eventManager) {
         return;
     }
     $this->eventManager->trigger($event, $this, array($nameForReturnValue => $values));
 }
 /**
  * @return EventManagerInterface
  */
 private function createPrivateEventManager($eventClazz)
 {
     $events = new EventManager();
     $events->setIdentifiers(array('ZfcUserAdmin', $eventClazz));
     $events->setEventClass($eventClazz);
     return $events;
 }
Example #4
0
 protected function trigger(EntityInterface $entity)
 {
     if (!$this->eventManager) {
         return;
     }
     $this->eventManager->trigger('create:post', $this, compact('entity'));
 }
 public function setUp()
 {
     // Store original autoloaders
     $this->loaders = spl_autoload_functions();
     if (!is_array($this->loaders)) {
         // spl_autoload_functions does not return empty array when no
         // autoloaders registered...
         $this->loaders = array();
     }
     // Store original include_path
     $this->includePath = get_include_path();
     $autoloader = new ModuleAutoloader(array(dirname(__DIR__) . '/TestAsset'));
     $autoloader->register();
     $this->sharedEvents = new SharedEventManager();
     $this->moduleManager = new ModuleManager(array('ListenerTestModule'));
     $this->moduleManager->getEventManager()->setSharedManager($this->sharedEvents);
     $this->moduleManager->getEventManager()->attach('loadModule.resolve', new ModuleResolverListener(), 1000);
     $this->application = new MockApplication();
     $events = new EventManager(array('Zend\\Mvc\\Application', 'ZendTest\\Module\\TestAsset\\MockApplication', 'application'));
     $events->setSharedManager($this->sharedEvents);
     $this->application->setEventManager($events);
     $this->serviceManager = new ServiceManager();
     $this->serviceManager->setService('ModuleManager', $this->moduleManager);
     $this->application->setServiceManager($this->serviceManager);
 }
 public function addAction()
 {
     // The annotation builder help us create a form from the annotations in the user entity.
     $builder = new AnnotationBuilder();
     $entity = $this->serviceLocator->get('user-entity');
     $form = $builder->createForm($entity);
     $form->add(array('name' => 'password_verify', 'type' => 'Zend\\Form\\Element\\Password', 'attributes' => array('placeholder' => 'Verify Password Here...', 'required' => 'required'), 'options' => array('label' => 'Verify Password')), array('priority' => $form->get('password')->getOption('priority')));
     // This is the special code that protects our form being submitted from automated scripts
     $form->add(array('name' => 'csrf', 'type' => 'Zend\\Form\\Element\\Csrf'));
     // This is the submit button
     $form->add(array('name' => 'submit', 'type' => 'Zend\\Form\\Element\\Submit', 'attributes' => array('value' => 'Submit', 'required' => 'false')));
     // We bind the entity to the user. If the form tries to read/write data from/to the entity
     // it will use the hydrator specified in the entity to achieve this. In our case we use ClassMethods
     // hydrator which means that reading will happen calling the getter methods and writing will happen by
     // calling the setter methods.
     $form->bind($entity);
     if ($this->getRequest()->isPost()) {
         $data = array_merge_recursive($this->getRequest()->getPost()->toArray(), $this->getRequest()->getFiles()->toArray());
         $form->setData($data);
         if ($form->isValid()) {
             // We use now the Doctrine 2 entity manager to save user data to the database
             $entityManager = $this->serviceLocator->get('entity-manager');
             $entityManager->persist($entity);
             $entityManager->flush();
             $this->flashmessenger()->addSuccessMessage('User was added successfully.');
             $event = new EventManager('user');
             $event->trigger('register', $this, array('user' => $entity));
             // redirect the user to the view user action
             return $this->redirect()->toRoute('user/default', array('controller' => 'account', 'action' => 'view', 'id' => $entity->getId()));
         }
     }
     // pass the data to the view for visualization
     return array('form1' => $form);
 }
Example #7
0
 private function getEventManager()
 {
     if (!$this->eventManager) {
         $this->eventManager = new EventManager();
         $this->eventManager->setIdentifiers(get_class($this));
     }
     return $this->eventManager;
 }
Example #8
0
 /**
  * @param \Zend\EventManager\EventManager $eventManager
  * @param \Zend\Form\FormInterface $form
  * @param \ArrayAccess $spec
  */
 public function it_should_trigger_events_during_form_configuration($eventManager, $form, $spec)
 {
     $this->configureForm($form, $spec);
     $triggeredEvents = array(FormEvent::EVENT_CONFIGURE_ELEMENT_PRE, FormEvent::EVENT_CONFIGURE_ELEMENT_POST);
     $eventManager->trigger(Argument::that(function ($event) use($form, $spec, $triggeredEvents) {
         return $event instanceof FormEvent && in_array($event->getName(), $triggeredEvents) && $event->getTarget() == $form->getWrappedObject() && $event->getParam('spec') == $spec->getWrappedObject();
     }))->shouldBeCalledTimes(count($triggeredEvents));
 }
 /**
  * 测试能正常注册身份验证过程中的事件监听器。
  */
 public function testEventManagerHasDefaultListeners()
 {
     $eventManager = new EventManager();
     $eventManager->attach($this->stub);
     $this->assertFalse($eventManager->getListeners(Event::EVENT_VERIFY_POST)->isEmpty());
     $this->assertFalse($eventManager->getListeners(Event::EVENT_TOKEN_POST)->isEmpty());
     $this->assertFalse($eventManager->getListeners(Event::EVENT_FAILURE)->isEmpty());
 }
 public function testCanDetachListenersFromEventManager()
 {
     $events = new EventManager();
     $events->attachAggregate($this->strategy);
     $this->assertEquals(1, count($events->getListeners(MvcEvent::EVENT_RENDER)));
     $events->detachAggregate($this->strategy);
     $this->assertEquals(0, count($events->getListeners(MvcEvent::EVENT_RENDER)));
 }
Example #11
0
 public function send($to, $templateName, array $data = [])
 {
     $template = $this->templateBuilder->get($templateName);
     $message = $this->mailAssembler->assemble($to, $template, $data);
     $this->mailTransport->send($message);
     $event = new Event('mail-send:post', $this, ['to' => $to, 'template' => $template, 'message' => $message, 'data' => $data]);
     $this->eventManager->trigger($event);
 }
 public function testAttach()
 {
     $eventManager = new EventManager();
     $eventManager->getSharedManager()->clearListeners('ConLayout\\Updater\\LayoutUpdater');
     $this->listener->attach($eventManager);
     $listeners = $eventManager->getSharedManager()->getListeners('ConLayout\\Updater\\LayoutUpdater', 'getLayoutStructure.pre');
     $this->assertCount(1, $listeners);
 }
 /**
  * Create an instance of EventManagerProxy
  * 
  * @param ServiceLocatorInterface $serviceLocator
  * 
  * @return EventManagerProxy
  */
 public function createService(ServiceLocatorInterface $serviceLocator)
 {
     $proxy = new EventManagerProxy();
     $em = new EventManager();
     $em->setSharedManager($serviceLocator->get('SharedEventManager'));
     $proxy->setEventManager($em);
     return $proxy;
 }
 /**
  * {@inheritDoc}
  */
 public function createService(ServiceLocatorInterface $serviceLocator)
 {
     /* @var $logger \OcraServiceManager\ServiceManager\Logger */
     $logger = $serviceLocator->get('OcraServiceManager\\ServiceManager\\Logger');
     $eventManager = new EventManager();
     $eventManager->attach($logger);
     return $eventManager;
 }
 public function testAttach()
 {
     $sharedEvents = new SharedEventManager();
     $events = new EventManager();
     $events->setSharedManager($sharedEvents);
     $listener = new AccessListener();
     $listener->attach($events);
     $this->assertCount(1, $sharedEvents->getListeners('SporkTools', MvcEvent::EVENT_DISPATCH));
 }
Example #16
0
 public function testAttach()
 {
     $em = new EventManager();
     $this->assertEmpty($em->getListeners(ViewEvent::EVENT_RENDERER));
     $this->assertEmpty($em->getListeners(ViewEvent::EVENT_RESPONSE));
     $this->strategy->attach($em);
     $this->assertCount(1, $em->getListeners(ViewEvent::EVENT_RENDERER));
     $this->assertCount(1, $em->getListeners(ViewEvent::EVENT_RESPONSE));
 }
Example #17
0
 /**
  * @param \Zend\EventManager\EventManager $eventManager
  */
 public function it_should_trigger_events_while_creating_form($eventManager)
 {
     $this->mockConfiguration();
     $this->createForm('stdClass');
     $eventManager->trigger(Argument::that(function ($event) {
         $validEvents = array(FormEvent::EVENT_FORM_CREATE_PRE, FormEvent::EVENT_FORM_CREATE_POST);
         return $event instanceof FormEvent && in_array($event->getName(), $validEvents);
     }))->shouldBeCalledTimes(2);
 }
 public function setUp()
 {
     $resourceFactory = new UserRolesResourceFactory();
     /** @var \Zfegg\Admin\V1\Rest\UserRoles\UserRolesResource $resources */
     $resources = $resourceFactory($this->getServices());
     $events = new EventManager();
     $this->listener = $resources;
     $events->attach($this->listener);
 }
 public function testDetachesListeners()
 {
     $events = new EventManager();
     $events->attachAggregate($this->listener);
     $listeners = $events->getListeners('dispatch');
     $this->assertEquals(1, count($listeners));
     $events->detachAggregate($this->listener);
     $listeners = $events->getListeners('dispatch');
     $this->assertEquals(0, count($listeners));
 }
 public function createServiceWithName(ServiceLocatorInterface $serviceManager, $name, $requestedName)
 {
     $eventManager = new ZendEventManager();
     $entityEventManager = new EntityEventManager($eventManager);
     $entityParams = explode('\\', $requestedName);
     if (isset($entityParams[0])) {
         $eventManager->setIdentifiers($entityParams[0]);
     }
     return $entityEventManager;
 }
 public function testDetachesListeners()
 {
     $events = new EventManager();
     $events->attachAggregate($this->listener);
     $listeners = $events->getListeners(MvcEvent::EVENT_DISPATCH);
     $this->assertEquals(2, count($listeners));
     $events->detachAggregate($this->listener);
     $listeners = $events->getListeners(MvcEvent::EVENT_DISPATCH);
     $this->assertEquals(0, count($listeners));
 }
 public function testAttach()
 {
     $eventManager = new EventManager();
     $listener = new BodyClassListener(new BodyClass());
     $before = $eventManager->getListeners(\Zend\Mvc\MvcEvent::EVENT_DISPATCH);
     $this->assertCount(0, $before);
     $eventManager->attach($listener);
     $after = $eventManager->getListeners(\Zend\Mvc\MvcEvent::EVENT_DISPATCH);
     $this->assertCount(1, $after);
 }
Example #23
0
 public function setUp()
 {
     $this->module = new Module();
     $this->app = $this->getMockBuilder('Zend\\Mvc\\Application')->disableOriginalConstructor()->getMock();
     $sm = new ServiceManager(new Config(['services' => ['translator' => Translator::factory(['locale' => 'id_ID'])]]));
     $this->app->expects($this->any())->method('getServiceManager')->willReturn($sm);
     $em = new EventManager();
     $em->setSharedManager(new SharedEventManager());
     $this->app->expects($this->any())->method('getEventManager')->willReturn($em);
 }
Example #24
0
 /**
  * Test if firewall is on
  */
 public function testFirewallOn()
 {
     self::setUpFirewallOn();
     $spyListener = new SpyingFirewallListener();
     $spyListener->setServiceLocator($this->getServiceManager());
     $eventManager = new EventManager();
     $eventManager->attach($spyListener);
     $eventManager->trigger(FirewallEvent::EVENT_FIREWALL_DISPATCH);
     $this->assertTrue($spyListener->isFirewallEnabled());
 }
Example #25
0
 public function marshalEventManager()
 {
     $r = new ReflectionClass(EventManager::class);
     if ($r->hasMethod('setSharedManager')) {
         $eventManager = new EventManager();
         $eventManager->setSharedManager(new SharedEventManager());
         return $eventManager;
     }
     return new EventManager(new SharedEventManager());
 }
Example #26
0
    /**
     * Create an EventManager instance
     *
     * Creates a new EventManager instance, seeding it with a shared instance
     * of SharedEventManager.
     * 
     * @param  ServiceLocatorInterface $serviceLocator 
     * @return EventManager
     */
    public function createService(ServiceLocatorInterface $serviceLocator)
    {
        static $sharedEventManager = null;
        if (!$sharedEventManager) {
            $sharedEventManager = new SharedEventManager();
        }

        $em = new EventManager();
        $em->setSharedManager($sharedEventManager);
        return $em;
    }
Example #27
0
 /**
  * 
  * @param ClassScanner[] $classes
  */
 public function parse($classes)
 {
     $config = array();
     foreach ($classes as $class) {
         $classAnnotationHolder = $this->parseClass($class);
         $event = new ParseEvent(ParseEvent::EVENT_CLASS_PARSED, $classAnnotationHolder, array('config' => $this->config));
         $this->eventManager->trigger($event);
         $config = ArrayUtils::merge($config, $event->getResult());
     }
     return $config;
 }
Example #28
0
 public function setUp()
 {
     $this->module = new Module();
     $app = $this->prophesize('Zend\\Mvc\\Application');
     $sm = new ServiceManager(new Config(['services' => ['translator' => Translator::factory(['locale' => 'id_ID'])]]));
     $app->getServiceManager()->willReturn($sm);
     $em = new EventManager();
     $em->setSharedManager(new SharedEventManager());
     $app->getEventManager()->willReturn($em);
     $this->app = $app->reveal();
 }
 public function testCanAttachListeners()
 {
     $mockListener = $this->getMock('EventLogger\\Log\\Listener\\LogListener');
     $serviceManager = new ServiceManager();
     $serviceManager->setService('EventLogger\\Log\\Listener\\AppListener', $mockListener);
     $serviceManager->setService('EventLogger\\Log\\Listener\\DispatchErrorListener', $mockListener);
     $eventManager = new EventManager();
     $eventManager->setSharedManager(new SharedEventManager());
     $listenerAggregate = new ListenerAggregate($serviceManager);
     $listenerAggregate->attach($eventManager);
 }
Example #30
0
 public function testAttachesToRouteEventAtNegativePriority()
 {
     $events = new EventManager();
     $events->attach($this->listener);
     $listeners = $events->getListeners('route');
     $this->assertEquals(1, count($listeners));
     $this->assertTrue($listeners->hasPriority(-41));
     $callback = $listeners->getIterator()->current()->getCallback();
     $test     = array_shift($callback);
     $this->assertSame($this->listener, $test);
 }