Skip to content

Instantly share code, notes, and snippets.

@Freeaqingme
Created March 18, 2013 00:12
Show Gist options
  • Save Freeaqingme/5184219 to your computer and use it in GitHub Desktop.
Save Freeaqingme/5184219 to your computer and use it in GitHub Desktop.
<?php
namespace Houdini\Guard;
use Zend\Mvc\MvcEvent;
class Route extends \BjyAuthorize\Guard\Route
{
protected $enforceModules = null;
/**
* {@inheritDoc}
*/
public function onRoute(MvcEvent $event)
{
$controllerLoader = $this->serviceLocator->get('controllerLoader');
$controllerName = $event->getRouteMatch()->getParams()['controller'];
$controller = $controllerLoader->get($controllerName);
if (!$this->shouldEnforceModule(get_class($controller))) {
return;
}
return parent::onRoute($event);
}
public function setEnforceModules(array $modules) {
$this->enforceModules = $modules;
}
protected function shouldEnforceModule($moduleName)
{
if ($this->enforceModules === null) {
return true;
}
foreach ($this->enforceModules as $module) {
if (substr($moduleName, 0, strlen($module) + 1)== $module . '\\') {
return true;
}
}
return false;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment