rendered paste body<?php
class EDM_Acl extends Zend_Acl {
public function __construct(){
$db = EDM_Core::getInstance()->getDb();
$roles = $db->fetchAll("SELECT
acl_role_privileges.role_id,
acl_resources.resource_name,
acl_privileges.privilege_name
FROM acl_role_privileges, acl_resources, acl_privileges WHERE
acl_role_privileges.privilege_id = acl_privileges.privilege_id AND
acl_privileges.resource_id = acl_resources.resource_id");
foreach ($roles as $role) {
if (!$this->has($role['resource_name'])) {
$this->add(new Zend_Acl_Resource($role['resource_name']));
}
if (!$this->hasRole($role['role_id'])) {
$this->addRole(new Zend_Acl_Role($role['role_id']));
}
}
$this->add(new Zend_Acl_Resource('error'));
$this->deny();
$this->allow(null, 'error');
foreach ($roles as $role) {
$this->allow($role['role_id'], $role['resource_name'], $role['privilege_name']);
}
}
}