## Zend_Acl

Description

- license: New BSD License
- copyright: Copyright (c) 2005-2007 Zend Technologies USA Inc. (http://www.zend.com)

Located in /Zend/Acl.php (line 48)

Class Constant Summary
OP_ADD = 'OP_ADD'
OP_REMOVE = 'OP_REMOVE'
TYPE_ALLOW = 'TYPE_ALLOW'
TYPE_DENY = 'TYPE_DENY'
Variable Summary
array $_resources
Zend_Acl_Role_Registry $_roleRegistry
array $_rules
Method Summary
Zend_Acl add (Zend_Acl_Resource_Interface $resource, [Zend_Acl_Resource_Interface|string $parent = null])
Zend_Acl addRole (Zend_Acl_Role_Interface $role, [Zend_Acl_Role_Interface|string|array $parents = null])
Zend_Acl allow ([Zend_Acl_Role_Interface|string|array $roles = null], [Zend_Acl_Resource_Interface|string|array $resources = null], [string|array $privileges = null], [Zend_Acl_Assert_Interface $assert = null])
Zend_Acl deny ([Zend_Acl_Role_Interface|string|array $roles = null], [Zend_Acl_Resource_Interface|string|array $resources = null], [string|array $privileges = null], [Zend_Acl_Assert_Interface $assert = null])
Zend_Acl_Resource_Interface get (Zend_Acl_Resource_Interface|string $resource)
Zend_Acl_Role_Interface getRole (Zend_Acl_Role_Interface|string $role)
boolean has (Zend_Acl_Resource_Interface|string $resource)
boolean hasRole (Zend_Acl_Role_Interface|string $role)
boolean inherits (Zend_Acl_Resource_Interface|string $resource, Zend_Acl_Resource_Interface|string $inherit, [boolean $onlyParent = false])
boolean inheritsRole (Zend_Acl_Role_Interface|string $role, Zend_Acl_Role_Interface|string $inherit, [boolean $onlyParents = false])
boolean isAllowed ([Zend_Acl_Role_Interface|string $role = null], [Zend_Acl_Resource_Interface|string $resource = null], [string $privilege = null])
Zend_Acl remove (Zend_Acl_Resource_Interface|string $resource)
Zend_Acl removeAll ()
Zend_Acl removeAllow ([Zend_Acl_Role_Interface|string|array $roles = null], [Zend_Acl_Resource_Interface|string|array $resources = null], [string|array $privileges = null])
Zend_Acl removeDeny ([Zend_Acl_Role_Interface|string|array $roles = null], [Zend_Acl_Resource_Interface|string|array $resources = null], [string|array $privileges = null])
Zend_Acl removeRole (Zend_Acl_Role_Interface|string $role)
Zend_Acl removeRoleAll ()
Zend_Acl setRule (string $operation, string $type, [Zend_Acl_Role_Interface|string|array $roles = null], [Zend_Acl_Resource_Interface|string|array $resources = null], [string|array $privileges = null], [Zend_Acl_Assert_Interface $assert = null])
Zend_Acl_Role_Registry _getRoleRegistry ()
array|null &_getRules ([Zend_Acl_Resource_Interface $resource = null], [Zend_Acl_Role_Interface $role = null], [boolean $create = false])
string|null _getRuleType ([Zend_Acl_Resource_Interface $resource = null], [Zend_Acl_Role_Interface $role = null], [string $privilege = null])
boolean|null _roleDFSAllPrivileges (Zend_Acl_Role_Interface $role, [Zend_Acl_Resource_Interface $resource = null])
boolean|null _roleDFSOnePrivilege (Zend_Acl_Role_Interface $role, [Zend_Acl_Resource_Interface $resource = null], string $privilege)
boolean|null _roleDFSVisitAllPrivileges (Zend_Acl_Role_Interface $role, [Zend_Acl_Resource_Interface $resource = null], &$dfs, array $dfs)
boolean|null _roleDFSVisitOnePrivilege (Zend_Acl_Role_Interface $role, [Zend_Acl_Resource_Interface $resource = null], string $privilege, &$dfs, array $dfs)
Variables
array $_resources = array() (line 82)

Resource tree

- access: protected

Zend_Acl_Role_Registry $_roleRegistry = null (line 75)

Role registry

- access: protected

array $_rules = array(
'allResources' => array(
'allRoles' => array(
'allPrivileges' => array(
'type' => self::TYPE_DENY,
'assert' => null
),'byPrivilegeId'=>array()),'byRoleId'=>array()),'byResourceId'=>array()) (line 89)

ACL rules; whitelist (deny everything to all) by default

- access: protected

Methods
add (line 245)

Adds a Resource having an identifier unique to the ACL

The $parent parameter may be a reference to, or the string identifier for, the existing Resource from which the newly added Resource will inherit.

- return: Provides a fluent interface
- access: public
- throws: Zend_Acl_Exception

Zend_Acl add (Zend_Acl_Resource_Interface $resource, [Zend_Acl_Resource_Interface|string $parent = null])

- Zend_Acl_Resource_Interface $resource
- Zend_Acl_Resource_Interface|string $parent

addRole (line 122)

Adds a Role having an identifier unique to the registry

The $parents parameter may be a reference to, or the string identifier for, a Role existing in the registry, or $parents may be passed as an array of these - mixing string identifiers and objects is ok - to indicate the Roles from which the newly added Role will directly inherit.

In order to resolve potential ambiguities with conflicting rules inherited from different parents, the most recently added parent takes precedence over parents that were previously added. In other words, the first parent added will have the least priority, and the last parent added will have the highest priority.

- return: Provides a fluent interface
- access: public
- uses: Zend_Acl_Role_Registry::add()

Zend_Acl addRole (Zend_Acl_Role_Interface $role, [Zend_Acl_Role_Interface|string|array $parents = null])

- Zend_Acl_Role_Interface $role
- Zend_Acl_Role_Interface|string|array $parents

allow (line 437)

Adds an "allow" rule to the ACL

- return: Provides a fluent interface
- access: public
- uses: Zend_Acl::setRule()

Zend_Acl allow ([Zend_Acl_Role_Interface|string|array $roles = null], [Zend_Acl_Resource_Interface|string|array $resources = null], [string|array $privileges = null], [Zend_Acl_Assert_Interface $assert = null])

- Zend_Acl_Role_Interface|string|array $roles
- Zend_Acl_Resource_Interface|string|array $resources
- string|array $privileges
- Zend_Acl_Assert_Interface $assert

deny (line 452)

Adds a "deny" rule to the ACL

- return: Provides a fluent interface
- access: public
- uses: Zend_Acl::setRule()

Zend_Acl deny ([Zend_Acl_Role_Interface|string|array $roles = null], [Zend_Acl_Resource_Interface|string|array $resources = null], [string|array $privileges = null], [Zend_Acl_Assert_Interface $assert = null])

- Zend_Acl_Role_Interface|string|array $roles
- Zend_Acl_Resource_Interface|string|array $resources
- string|array $privileges
- Zend_Acl_Assert_Interface $assert

get (line 288)

Returns the identified Resource

The $resource parameter can either be a Resource or a Resource identifier.

- usedby: Zend_Acl::isAllowed()
- usedby: Zend_Acl::setRule()
- access: public
- throws: Zend_Acl_Exception

Zend_Acl_Resource_Interface get (Zend_Acl_Resource_Interface|string $resource)

- Zend_Acl_Resource_Interface|string $resource

getRole (line 138)

Returns the identified Role

The $role parameter can either be a Role or Role identifier.

- access: public
- uses: Zend_Acl_Role_Registry::get()

Zend_Acl_Role_Interface getRole (Zend_Acl_Role_Interface|string $role)

- Zend_Acl_Role_Interface|string $role

has (line 312)

Returns true if and only if the Resource exists in the ACL

The $resource parameter can either be a Resource or a Resource identifier.

- access: public

boolean has (Zend_Acl_Resource_Interface|string $resource)

- Zend_Acl_Resource_Interface|string $resource

hasRole (line 152)

Returns true if and only if the Role exists in the registry

The $role parameter can either be a Role or a Role identifier.

- access: public
- uses: Zend_Acl_Role_Registry::has()

boolean hasRole (Zend_Acl_Role_Interface|string $role)

- Zend_Acl_Role_Interface|string $role

inherits (line 338)

Returns true if and only if $resource inherits from $inherit

Both parameters may be either a Resource or a Resource identifier. If $onlyParent is true, then $resource must inherit directly from $inherit in order to return true. By default, this method looks through the entire inheritance tree to determine whether $resource inherits from $inherit through its ancestor Resources.

- access: public
- throws: Zend_Acl_Resource_Registry_Exception

boolean inherits (Zend_Acl_Resource_Interface|string $resource, Zend_Acl_Resource_Interface|string $inherit, [boolean $onlyParent = false])

- Zend_Acl_Resource_Interface|string $resource
- Zend_Acl_Resource_Interface|string $inherit
- boolean $onlyParent

inheritsRole (line 172)

Returns true if and only if $role inherits from $inherit

Both parameters may be either a Role or a Role identifier. If $onlyParents is true, then $role must inherit directly from $inherit in order to return true. By default, this method looks through the entire inheritance DAG to determine whether $role inherits from $inherit through its ancestor Roles.

- access: public
- uses: Zend_Acl_Role_Registry::inherits()

boolean inheritsRole (Zend_Acl_Role_Interface|string $role, Zend_Acl_Role_Interface|string $inherit, [boolean $onlyParents = false])

- Zend_Acl_Role_Interface|string $role
- Zend_Acl_Role_Interface|string $inherit
- boolean $onlyParents

isAllowed (line 685)

Returns true if and only if the Role has access to the Resource

The $role and $resource parameters may be references to, or the string identifiers for, an existing Resource and Role combination.

If either $role or $resource is null, then the query applies to all Roles or all Resources, respectively. Both may be null to query whether the ACL has a "blacklist" rule (allow everything to all). By default, Zend_Acl creates a "whitelist" rule (deny everything to all), and this method would return false unless this default has been overridden (i.e., by executing $acl->allow()).

If a $privilege is not provided, then this method returns false if and only if the Role is denied access to at least one privilege upon the Resource. In other words, this method returns true if and only if the Role is allowed all privileges on the Resource.

This method checks Role inheritance using a depth-first traversal of the Role registry. The highest priority parent (i.e., the parent most recently added) is checked first, and its respective parents are checked similarly before the lower-priority parents of the Role are checked.

- access: public
- uses: Zend_Acl_Role_Registry::get()
- uses: Zend_Acl::get()

boolean isAllowed ([Zend_Acl_Role_Interface|string $role = null], [Zend_Acl_Resource_Interface|string $resource = null], [string $privilege = null])

- Zend_Acl_Role_Interface|string $role
- Zend_Acl_Resource_Interface|string $resource
- string $privilege

remove (line 377)

Removes a Resource and all of its children

The $resource parameter can either be a Resource or a Resource identifier.

- return: Provides a fluent interface
- access: public
- throws: Zend_Acl_Exception

Zend_Acl remove (Zend_Acl_Resource_Interface|string $resource)

- Zend_Acl_Resource_Interface|string $resource

removeAll (line 412)

Removes all Resources

- return: Provides a fluent interface
- access: public

Zend_Acl removeAll ()
removeAllow (line 466)

Removes "allow" permissions from the ACL

- return: Provides a fluent interface
- access: public
- uses: Zend_Acl::setRule()

Zend_Acl removeAllow ([Zend_Acl_Role_Interface|string|array $roles = null], [Zend_Acl_Resource_Interface|string|array $resources = null], [string|array $privileges = null])

- Zend_Acl_Role_Interface|string|array $roles
- Zend_Acl_Resource_Interface|string|array $resources
- string|array $privileges

removeDeny (line 480)

Removes "deny" restrictions from the ACL

- return: Provides a fluent interface
- access: public
- uses: Zend_Acl::setRule()

Zend_Acl removeDeny ([Zend_Acl_Role_Interface|string|array $roles = null], [Zend_Acl_Resource_Interface|string|array $resources = null], [string|array $privileges = null])

- Zend_Acl_Role_Interface|string|array $roles
- Zend_Acl_Resource_Interface|string|array $resources
- string|array $privileges

removeRole (line 186)

Removes the Role from the registry

The $role parameter can either be a Role or a Role identifier.

- return: Provides a fluent interface
- access: public
- uses: Zend_Acl_Role_Registry::remove()

Zend_Acl removeRole (Zend_Acl_Role_Interface|string $role)

- Zend_Acl_Role_Interface|string $role

removeRoleAll (line 218)

Removes all Roles from the registry

- return: Provides a fluent interface
- access: public
- uses: Zend_Acl_Role_Registry::removeAll()

Zend_Acl removeRoleAll ()
setRule (line 537)

Performs operations on ACL rules

The $operation parameter may be either OP_ADD or OP_REMOVE, depending on whether the user wants to add or remove a rule, respectively:

OP_ADD specifics:

A rule is added that would allow one or more Roles access to [certain $privileges upon] the specified Resource(s).

OP_REMOVE specifics:

The rule is removed only in the context of the given Roles, Resources, and privileges. Existing rules to which the remove operation does not apply would remain in the ACL.

The $type parameter may be either TYPE_ALLOW or TYPE_DENY, depending on whether the rule is intended to allow or deny permission, respectively.

The $roles and $resources parameters may be references to, or the string identifiers for, existing Resources/Roles, or they may be passed as arrays of these - mixing string identifiers and objects is ok - to indicate the Resources and Roles to which the rule applies. If either $roles or $resources is null, then the rule applies to all Roles or all Resources, respectively. Both may be null in order to work with the default rule of the ACL.

The $privileges parameter may be used to further specify that the rule applies only to certain privileges upon the Resource(s) in question. This may be specified to be a single privilege with a string, and multiple privileges may be specified as an array of strings.

If $assert is provided, then its assert() method must return true in order for the rule to apply. If $assert is provided with $roles, $resources, and $privileges all equal to null, then a rule having a type of:

TYPE_ALLOW will imply a type of TYPE_DENY, and

TYPE_DENY will imply a type of TYPE_ALLOW

when the rule's assertion fails. This is because the ACL needs to provide expected behavior when an assertion upon the default ACL rule fails.

- return: Provides a fluent interface
- usedby: Zend_Acl::deny()
- usedby: Zend_Acl::removeAllow()
- usedby: Zend_Acl::removeDeny()
- usedby: Zend_Acl::allow()
- access: public
- uses: Zend_Acl::get()
- uses: Zend_Acl_Role_Registry::get()
- throws: Zend_Acl_Exception

Zend_Acl setRule (string $operation, string $type, [Zend_Acl_Role_Interface|string|array $roles = null], [Zend_Acl_Resource_Interface|string|array $resources = null], [string|array $privileges = null], [Zend_Acl_Assert_Interface $assert = null])

- string $operation
- string $type
- Zend_Acl_Role_Interface|string|array $roles
- Zend_Acl_Resource_Interface|string|array $resources
- string|array $privileges
- Zend_Acl_Assert_Interface $assert

_getRoleRegistry (line 749)

Returns the Role registry for this ACL

If no Role registry has been created yet, a new default Role registry is created and returned.

- access: protected

Zend_Acl_Role_Registry _getRoleRegistry ()
_getRules (line 957)

Returns the rules associated with a Resource and a Role, or null if no such rules exist

If either $resource or $role is null, this means that the rules returned are for all Resources or all Roles, respectively. Both can be null to return the default rule set for all Resources and all Roles.

If the $create parameter is true, then a rule set is first created and then returned to the caller.

- access: protected

array|null &_getRules ([Zend_Acl_Resource_Interface $resource = null], [Zend_Acl_Role_Interface $role = null], [boolean $create = false])

- Zend_Acl_Resource_Interface $resource
- Zend_Acl_Role_Interface $role
- boolean $create

_getRuleType (line 911)

Returns the rule type associated with the specified Resource, Role, and privilege combination.

If a rule does not exist or its attached assertion fails, which means that the rule is not applicable, then this method returns null. Otherwise, the rule type applies and is returned as either TYPE_ALLOW or TYPE_DENY.

If $resource or $role is null, then this means that the rule must apply to all Resources or Roles, respectively.

If $privilege is null, then the rule must apply to all privileges.

If all three parameters are null, then the default ACL rule type is returned, based on whether its assertion method passes.

- access: protected

string|null _getRuleType ([Zend_Acl_Resource_Interface $resource = null], [Zend_Acl_Role_Interface $role = null], [string $privilege = null])

- Zend_Acl_Resource_Interface $resource
- Zend_Acl_Role_Interface $role
- string $privilege

_roleDFSAllPrivileges (line 768)

Performs a depth-first search of the Role DAG, starting at $role, in order to find a rule allowing/denying $role access to all privileges upon $resource

This method returns true if a rule is found and allows access. If a rule exists and denies access, then this method returns false. If no applicable rule is found, then this method returns null.

- access: protected

boolean|null _roleDFSAllPrivileges (Zend_Acl_Role_Interface $role, [Zend_Acl_Resource_Interface $resource = null])

- Zend_Acl_Role_Interface $role
- Zend_Acl_Resource_Interface $resource

_roleDFSOnePrivilege (line 837)

Performs a depth-first search of the Role DAG, starting at $role, in order to find a rule allowing/denying $role access to a $privilege upon $resource

This method returns true if a rule is found and allows access. If a rule exists and denies access, then this method returns false. If no applicable rule is found, then this method returns null.

- access: protected

boolean|null _roleDFSOnePrivilege (Zend_Acl_Role_Interface $role, [Zend_Acl_Resource_Interface $resource = null], string $privilege)

- Zend_Acl_Role_Interface $role
- Zend_Acl_Resource_Interface $resource
- string $privilege

_roleDFSVisitAllPrivileges (line 803)

Visits an $role in order to look for a rule allowing/denying $role access to all privileges upon $resource

This method returns true if a rule is found and allows access. If a rule exists and denies access, then this method returns false. If no applicable rule is found, then this method returns null.

This method is used by the internal depth-first search algorithm and may modify the DFS data structure.

- access: protected

boolean|null _roleDFSVisitAllPrivileges (Zend_Acl_Role_Interface $role, [Zend_Acl_Resource_Interface $resource = null], &$dfs, array $dfs)

- Zend_Acl_Role_Interface $role
- Zend_Acl_Resource_Interface $resource
- array $dfs
- &$dfs

_roleDFSVisitOnePrivilege (line 873)

Visits an $role in order to look for a rule allowing/denying $role access to a $privilege upon $resource

This method returns true if a rule is found and allows access. If a rule exists and denies access, then this method returns false. If no applicable rule is found, then this method returns null.

This method is used by the internal depth-first search algorithm and may modify the DFS data structure.

- access: protected

boolean|null _roleDFSVisitOnePrivilege (Zend_Acl_Role_Interface $role, [Zend_Acl_Resource_Interface $resource = null], string $privilege, &$dfs, array $dfs)

- Zend_Acl_Role_Interface $role
- Zend_Acl_Resource_Interface $resource
- string $privilege
- array $dfs
- &$dfs

Class Constants
OP_ADD = 'OP_ADD' (line 63)

Rule operation: add

OP_REMOVE = 'OP_REMOVE' (line 68)

Rule operation: remove

TYPE_ALLOW = 'TYPE_ALLOW' (line 53)

Rule type: allow

TYPE_DENY = 'TYPE_DENY' (line 58)

Rule type: deny

Documentation generated on Wed, 21 Feb 2007 11:45:34 -0800 by phpDocumentor 1.3.1