Hi Guys,

I've built up an ACL, and I'm wondering if there's a way of querying it in a slightly different fashion. Far arguments sake my ACL looks like this

$acl = new Zend_Acl();
//add standard guest/member
$acl->addRole(new Zend_Acl_Role('guest'));
$acl->addRole(new Zend_Acl_Role('member'), 'guest');

//add member groups
$acl->addRole(new Zend_Acl_Role('group-2'), 'member');

//add this user and the groups they are part of
$acl->addRole(new Zend_Acl_Role('user'), array('group-2'));


//add resources
$acl->add(new Zend_Acl_Resource('news'));
$acl->add(new Zend_Acl_Resource('news-1'), 'news');
$acl->add(new Zend_Acl_Resource('news-2'), 'news');
$acl->add(new Zend_Acl_Resource('news-3'), 'news');
$acl->add(new Zend_Acl_Resource('news-4'), 'news');

//add permissions
//view
$acl->allow('group-2','news-1','view');
$acl->allow('group-2','news-2','view');

//edit
$acl->allow('group-2','news-3','view');
$acl->allow('group-2','news-4','view');


With an acl setup like this, basically I want to be able to get a list of the resources that this user has permission to perform certain actions on. So theoretically I want to do something like

$perms = $acl->searchResource('news', 'view'); //return "news-1", "news-2"
$perms = $acl->searchResource('news', 'edit'); //return "news-3", "news-4"
$perms = $acl->searchResource('news'); //return 'view' => "news-1", "news-2" ; 'edit' => "news-3", "news-4"

Is this already implimented in the code? Would someone be able to point me in the direction of how to write this sort of functionality if it isn't?

Thanks
Jude A.

Reply via email to