All pastes #909848 Raw Edit

Unnamed

public text v1 · immutable
·published 2008-02-19 15:48 UTC
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']);
		}
		
	}
	
}