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.