Hi, Could someone help me out? I have Zend_Acl all up and running lovely, but further research shows that some projects serialize the data and store in a database. My ACL implementation already uses a database for storing roles, resources etc. but on each time I see my ACL these calls are made to the database and I am wondering how to slim this down. e.g. SELECT "acl_roles".* FROM "acl_roles" ORDER BY "role_id" DESC SELECT "acl_resources".* FROM "acl_resources" SELECT "acl_roles".*, "acl_resources".*, "acl_permissions".* FROM "acl_roles" INNER JOIN "acl_resources" INNER JOIN "acl_permissions" WHERE (acl_permissions.resource_uid = acl_resources.uid) AND (acl_roles.role_id = acl_permissions.role_id) SELECT "acl_roles".*, "users".* FROM "acl_roles" INNER JOIN "users" WHERE (users.username = "rwc") AND (users.role_id = acl_roles.role_id) Obviously if I have a page with a ACL call and then two further Ajax calls that populate the page that also do ACL calls I get the above SQL sequence x 3 ... not efficient. The way I am using ACL in my Application is like so:
/** * Render Administration dialog * * @return void */ public function administrationAction() { if (!$this->_acl->isUserAllowed('mainMenu', 'administration')) { $this->_helper->layout->enableLayout(); throw new Exception('Permission denied!'); } } Cheers, - Robert ________________________________________________________________________ This email has been scanned for all known viruses by the MessageLabs Email Security Service and the Macro 4 plc internal virus protection system. ________________________________________________________________________