/**
* Add the ACL of this module to the global ACL
*
* @param MvcEvent $e
* @return void
*/
public function initAcl(MvcEvent $e)
{
if ($e->getViewModel()->acl == null) {
$acl = new Acl();
} else {
$acl = $e->getViewModel()->acl;
}
$aclConfig = (include __DIR__ . '/config/module.acl.php');
$allResources = array();
foreach ($aclConfig['roles'] as $role) {
if (!$acl->hasRole($role)) {
$role = new Role($role);
$acl->addRole($role);
} else {
$role = $acl->getRole($role);
}
if (array_key_exists($role->getRoleId(), $aclConfig['permissions'])) {
foreach ($aclConfig['permissions'][$role->getRoleId()] as $resource) {
if (!$acl->hasResource($resource)) {
$acl->addResource(new Resource($resource));
}
$acl->allow($role, $resource);
}
}
}
$e->getViewModel()->acl = $acl;
}