Skip to content

Instantly share code, notes, and snippets.

@eminetto
Created December 9, 2011 01:54
Show Gist options
  • Save eminetto/1449750 to your computer and use it in GitHub Desktop.
Save eminetto/1449750 to your computer and use it in GitHub Desktop.
acl
/**
* inicializa a acl
*
* @return void
* @author Elton Minetto
**/
protected function _initAcl()
{
$acl = new Zend_Acl;
$config = Zend_Registry::get('config');
foreach($config->acl->roles as $role => $parent) {
if($parent)
$acl->addRole(new Zend_Acl_Role($role), $parent);
else
$acl->addRole(new Zend_Acl_Role($role));
}
foreach($config->acl->resources as $r) {
$acl->add(new Zend_Acl_Resource($r));
}
if(isset($config->acl->allow)) {
foreach($config->acl->allow as $role => $privilege) {
foreach($privilege as $p) {
$privilege = explode('.', $p);
$acl->allow($role, $privilege[0], $privilege[1]);
}
}
}
if(isset($config->acl->deny)) {
foreach($config->acl->deny as $role => $privilege) {
foreach($privilege as $p) {
$privilege = explode('.', $p);
$acl->deny($role, $privilege[0], $privilege[1]);
}
}
}
Zend_Registry::set('acl',$acl);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment