/** * * @param type $options */ public function __construct($options = array()) { parent::__construct($options); // schedule disconnect from database Events::add('framework.controller.destruct.after', function ($name) { $database = Registry::get('database'); $database->disconnect(); }); $this->_security = Registry::get('security'); $this->_serverHost = RequestMethods::server('HTTP_HOST'); $this->_cache = Registry::get('cache'); $cfg = Registry::get('configuration'); $links = $this->getCache()->get('links'); if ($links !== null) { $links = $links; } else { $links = \App_Model_Link::all(array('active = ?' => true)); $this->getCache()->set('links', $links); } $metaData = $this->getCache()->get('global_meta_data'); if ($metaData !== null) { $metaData = $metaData; } else { $metaData = array('metadescription' => $cfg->meta_description, 'metarobots' => $cfg->meta_robots, 'metatitle' => $cfg->meta_title, 'metaogurl' => $cfg->meta_og_url, 'metaogtype' => $cfg->meta_og_type, 'metaogimage' => $cfg->meta_og_image, 'metaogsitename' => $cfg->meta_og_site_name); $this->getCache()->set('global_meta_data', $metaData); } $this->getLayoutView()->set('links', $links)->set('metatitle', $metaData['metatitle'])->set('metarobots', $metaData['metarobots'])->set('metadescription', $metaData['metadescription'])->set('metaogurl', $metaData['metaogurl'])->set('metaogtype', $metaData['metaogtype'])->set('metaogimage', $metaData['metaogimage'])->set('metaogsitename', $metaData['metaogsitename']); }
/** * * @param type $options */ public function __construct($options = array()) { parent::__construct($options); $this->connect(); Event::add('framework.controller.destruct.after', function ($name) { $cache = Registry::get('cache'); $cache->disconnect(); }); }
/** * * @param type $options */ public function __construct($options = array()) { parent::__construct($options); $this->_security = Registry::get('security'); // schedule disconnect from database Events::add('framework.controller.destruct.after', function ($name) { $database = Registry::get('database'); $database->disconnect(); }); }
/** * Create module-specific events */ private function addModuleEvents() { if ($this->getObserverClass() !== null) { $obsClass = $this->getObserverClass(); $moduleObserver = new $obsClass(); if ($moduleObserver instanceof SubscriberInterface) { $events = $moduleObserver->getSubscribedEvents(); foreach ($events as $name => $callback) { if (is_array($callback)) { foreach ($callback as $call) { Event::add($name, array($moduleObserver, $call)); } } else { Event::add($name, array($moduleObserver, $callback)); } } } } }
/** * Method initialize security context. Check session for user token and * initialize authentication and authorization classes */ public function initialize($configuration) { Event::fire('framework.security.initialize.before', array()); if (!empty($configuration->security)) { $this->_csrf = new CSRF(); $this->_passwordManager = new PasswordManager($configuration->security); } else { throw new \Exception('Error in configuration file'); } $session = Registry::get('session'); $user = $session->get('authUser'); $authentication = new Authentication\Authentication(); $this->_authentication = $authentication->initialize($configuration); $authorization = new Authorization\Authorization(); $this->_authorization = $authorization->initialize($configuration); if ($user instanceof BasicUser) { $this->_user = $user; Event::fire('framework.security.initialize.user', array($user)); } if ($this->_authorization->type == 'resourcebase') { Event::add('framework.router.findroute.after', function ($path) { $role = $this->getAuthorization()->checkForResource($path); if ($role !== null) { if ($this->isGranted($role) !== true) { throw new \THCFrame\Security\Exception\Unauthorized(); } } }); } Event::fire('framework.security.initialize.after', array()); return $this; }