View Source

<ac:macro ac:name="note"><ac:parameter ac:name="title">Under Construction</ac:parameter><ac:rich-text-body>
<p>This proposal is under construction and is not ready for review.</p></ac:rich-text-body></ac:macro>

<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[{zone-template-instance:ZFDEV:Zend Proposal Zone Template}

{zone-data:component-name}
Zend_Acl
{zone-data}

{zone-data:proposer-list}
[~ixti]
{zone-data}

{zone-data:revision}
0.1 - 22 April 2008: Initial release (explanation of idea).
{zone-data}

{zone-data:overview}
Improvement of Zend_Acl, so it will become multi-model (not limited to RBAC model as right now).
{zone-data}

{zone-data:references}
* [ACL Wikipedia Entry|http://en.wikipedia.org/wiki/Access_control_list]
{zone-data}

{zone-data:requirements}
Not defined yet.
{zone-data}

{zone-data:dependencies}
No dependecies.
{zone-data}

{zone-data:operation}
I propose not to limit ACL to the only RBAC model. There are a lot of models. And all of them are just a bases, so in certain project developer creating a new model based on ideas of well-known models.
I agree that RBAC is very good model and t can be used almost in all cases, but don't forget about _almost_. So for example right now a I need an ACL model based on ideas of [bit field|http://en.wikipedia.org/wiki/Bitfield]. Of course it can be done with RBAC, but with additional classes and functions.
{zone-data}

{zone-data:milestones}
Not ready yet.
{zone-data}

{zone-data:class-list}
* Zend_Acl
{zone-data}

{zone-data:use-cases}
||UC-01||
{code}
<?php

$acl = new Zend_Acl(); // Using default (RBAC) model.

$acl_lbac = new Zend_Acl(Zend_Acl::LBAC); // Using LBAC model.
{code}
{zone-data}

{zone-data:skeletons}
{zone-data}

{zone-template-instance}]]></ac:plain-text-body></ac:macro>