Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * namespace definition and usage
- */
- namespace User;
- use Application\Listener\ModuleListener;
- use User\Acl\Service;
- use User\Authentication\DbBcrypt;
- use User\Controller\Plugin\IsAllowed as IsAllowedControllerPlugin;
- use User\Entity\User as UserEntity;
- use User\Filter\UserLoginFilter;
- use User\Filter\UserPasswordFilter;
- use User\Filter\UserRegisterFilter;
- use User\Filter\UserUpdateFilter;
- use User\Form\UserDeleteForm;
- use User\Form\UserLoginForm;
- use User\Form\UserPasswordForm;
- use User\Form\UserSaveForm;
- use User\Listener\RouteListener;
- use User\Mapper\User as UserMapper;
- use User\Mapper\UserHydrator;
- use User\Options\ModuleOptions;
- use User\Service\User as UserService;
- use User\Table\User as UserTable;
- use User\View\Helper\IsAllowed as IsAllowedViewHelper;
- use User\View\Helper\ShowUserWidget;
- use Zend\Authentication\AuthenticationService;
- use Zend\EventManager\EventInterface;
- use Zend\ModuleManager\Feature\AutoloaderProviderInterface;
- use Zend\ModuleManager\Feature\BootstrapListenerInterface;
- use Zend\ModuleManager\Feature\ConfigProviderInterface;
- use Zend\ModuleManager\Feature\ControllerPluginProviderInterface;
- use Zend\ModuleManager\Feature\ServiceProviderInterface;
- use Zend\ModuleManager\Feature\ViewHelperProviderInterface;
- /**
- * User module
- *
- * Handles the user module
- *
- * @package Application
- * @author Ralf Eggert <r.eggert@travello.de>
- * @copyright Copyright (c) 2012 Travello GmbH
- */
- class Module implements AutoloaderProviderInterface, BootstrapListenerInterface, ConfigProviderInterface,
- ControllerPluginProviderInterface, ServiceProviderInterface, ViewHelperProviderInterface
- {
- /**
- * Listen to the bootstrap event
- *
- * @return array
- */
- public function onBootstrap(EventInterface $e)
- {
- // add module listener
- $e->getApplication()->getEventManager()->attachAggregate(
- new ModuleListener(__NAMESPACE__, __DIR__ . '/language')
- );
- // add route listener
- $e->getApplication()->getEventManager()->attachAggregate(
- new RouteListener()
- );
- }
- /**
- * Return an array for passing to Zend\Loader\AutoloaderFactory.
- *
- * @return array
- */
- public function getAutoloaderConfig()
- {
- return array(
- 'Zend\Loader\ClassMapAutoloader' => array(
- __DIR__ . '/autoload_classmap.php',
- ),
- 'Zend\Loader\StandardAutoloader' => array(
- 'namespaces' => array(
- __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
- ),
- ),
- );
- }
- /**
- * Returns configuration to merge with application configuration
- *
- * @return array|\Traversable
- */
- public function getConfig()
- {
- return include __DIR__ . '/config/module.config.php';
- }
- /**
- * Expected to return \Zend\ServiceManager\Config object or array to
- * seed such an object.
- *
- * @return array|\Zend\ServiceManager\Config
- */
- public function getViewHelperConfig()
- {
- return array(
- 'factories' => array(
- 'ShowUserWidget' => function($sm) {
- $auth = $sm->getServiceLocator()->get('Zend\Authentication\Service');
- $loginForm = $sm->getServiceLocator()->get('User\Service\User')->getLoginForm();
- $options = $sm->getServiceLocator()->get('User\Options\Module');
- $helper = new ShowUserWidget($auth, $loginForm, $options);
- return $helper;
- },
- 'IsAllowed' => function($sm) {
- $acl = $sm->getServiceLocator()->get('User\Acl\Service');
- $helper = new IsAllowedViewHelper($acl);
- return $helper;
- },
- ),
- );
- }
- /**
- * Expected to return \Zend\ServiceManager\Config object or array to
- * seed such an object.
- *
- * @return array|\Zend\ServiceManager\Config
- */
- public function getControllerPluginConfig()
- {
- return array(
- 'factories' => array(
- 'isAllowed' => function($sm) {
- $acl = $sm->getServiceLocator()->get('User\Acl\Service');
- $plugin = new IsAllowedControllerPlugin($acl);
- return $plugin;
- },
- )
- );
- }
- /**
- * Expected to return \Zend\ServiceManager\Config object or array to
- * seed such an object.
- *
- * @return array|\Zend\ServiceManager\Config
- */
- public function getServiceConfig()
- {
- return array(
- 'factories' => array(
- 'User\Acl\Service' => function($sm) {
- $config = $sm->get('Config');
- $cache = $sm->get('Application\Cache\Objects');
- $auth = $sm->get('Zend\Authentication\Service');
- $role = $auth->hasIdentity() ? $auth->getIdentity()->getGroup() : 'guest';
- $acl = new Service($role, $config['acl'], $cache);
- return $acl;
- },
- 'User\Authentication\DbBcrypt' => function($sm) {
- $mapper = $sm->get('User\Mapper\User');
- $options = $sm->get('User\Options\Module');
- $adapter = new DbBcrypt($mapper, $options);
- return $adapter;
- },
- 'User\Filter\UserLogin' => function($sm) {
- $adapter = $sm->get('Zend\Db\Adapter\Adapter');
- $options = $sm->get('User\Options\Module');
- $filter = new UserLoginFilter($adapter, $options);
- return $filter;
- },
- 'User\Filter\UserPassword' => function($sm) {
- $adapter = $sm->get('Zend\Db\Adapter\Adapter');
- $options = $sm->get('User\Options\Module');
- $filter = new UserPasswordFilter($adapter, $options);
- return $filter;
- },
- 'User\Filter\UserRegister' => function($sm) {
- $adapter = $sm->get('Zend\Db\Adapter\Adapter');
- $options = $sm->get('User\Options\Module');
- $filter = new UserRegisterFilter($adapter, $options);
- return $filter;
- },
- 'User\Filter\UserUpdate' => function($sm) {
- $adapter = $sm->get('Zend\Db\Adapter\Adapter');
- $options = $sm->get('User\Options\Module');
- $filter = new UserUpdateFilter($adapter, $options);
- return $filter;
- },
- 'User\Form\UserAdmin' => function($sm) {
- $filter = $sm->get('User\Filter\UserUpdate');
- $mapper = $sm->get('User\Mapper\User');
- $form = new UserSaveForm();
- $form->setInputFilter($filter);
- $form->setHydrator($mapper->getHydrator());
- $form->get('status')->setValueOptions($options->getStatusOptions());
- $form->get('group')->setValueOptions($options->getGroupOptions());
- return $form;
- },
- 'User\Form\UserDelete' => function($sm) {
- $form = new UserDeleteForm();
- return $form;
- },
- 'User\Form\UserLogin' => function($sm) {
- $filter = $sm->get('User\Filter\UserLogin');
- $form = new UserLoginForm();
- $form->setInputFilter($filter);
- return $form;
- },
- 'User\Form\UserPassword' => function($sm) {
- $filter = $sm->get('User\Filter\UserPassword');
- $form = new UserPasswordForm();
- $form->setInputFilter($filter);
- return $form;
- },
- 'User\Form\UserRegister' => function($sm) {
- $filter = $sm->get('User\Filter\UserRegister');
- $mapper = $sm->get('User\Mapper\User');
- $form = new UserSaveForm();
- $form->setInputFilter($filter);
- $form->setHydrator($mapper->getHydrator());
- $form->remove('id');
- $form->remove('status');
- $form->remove('group');
- return $form;
- },
- 'User\Form\UserUpdate' => function($sm) {
- $filter = $sm->get('User\Filter\UserUpdate');
- $mapper = $sm->get('User\Mapper\User');
- $form = new UserSaveForm();
- $form->setInputFilter($filter);
- $form->setHydrator($mapper->getHydrator());
- $form->remove('status');
- $form->remove('group');
- $form->setValidationGroup(array('nickname', 'email', 'password', 'firstname', 'lastname'));
- return $form;
- },
- 'User\Mapper\User' => function($sm) {
- $table = $sm->get('User\Table\User');
- $mapper = new UserMapper($table, new UserHydrator());
- return $mapper;
- },
- 'User\Options\Module' => function($sm) {
- $config = $sm->get('Config');
- return new ModuleOptions(isset($config['module_options']) ? $config['module_options'] : array());
- },
- 'User\Service\User' => function($sm) {
- $mapper = $sm->get('User\Mapper\User');
- $options = $sm->get('User\Options\Module');
- $auth = $sm->get('Zend\Authentication\Service');
- $mailer = $sm->get('Application\Mail\Mailer');
- $service = new UserService($mapper, $options, $auth, $mailer);
- return $service;
- },
- 'User\Table\User' => function($sm) {
- $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
- $table = new UserTable($dbAdapter);
- return $table;
- },
- 'Zend\Authentication\Service' => function($sm) {
- $adapter = $sm->get('User\Authentication\DbBcrypt');
- $auth = new AuthenticationService();
- $auth->setAdapter($adapter);
- return $auth;
- },
- ),
- );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement