Namespaces

  • Nette
    • Application
      • Diagnostics
      • Responses
      • Routers
      • UI
    • Caching
      • Storages
    • ComponentModel
    • Database
      • Diagnostics
      • Drivers
      • Reflection
      • Table
    • DI
      • Config
        • Adapters
      • Diagnostics
      • Extensions
    • Diagnostics
    • Forms
      • Controls
      • Rendering
    • Http
      • Diagnostics
    • Iterators
    • Latte
      • Macros
    • Loaders
    • Localization
    • Mail
    • PhpGenerator
    • Reflection
    • Security
      • Diagnostics
    • Templating
    • Utils
  • NetteModule
  • none

Classes

  • Identity
  • Permission
  • SimpleAuthenticator
  • User

Interfaces

  • IAuthenticator
  • IAuthorizator
  • IIdentity
  • IResource
  • IRole
  • IUserStorage

Exceptions

  • AuthenticationException
  • Overview
  • Namespace
  • Class
  • Tree
  • Deprecated
  • Other releases
  • Nette homepage

Class Permission

Access control list (ACL) functionality and privileges management.

This solution is mostly based on Zend_Acl (c) Zend Technologies USA Inc. (http://www.zend.com), new BSD license

Nette\Object
Extended by Nette\Security\Permission implements Nette\Security\IAuthorizator
Namespace: Nette\Security
Copyright: Copyright (c) 2005, 2007 Zend Technologies USA Inc.
Author: David Grudl
Located at Security/Permission.php
Methods summary
public Nette\Security\Permission
# addRole( string $role, string|array $parents = NULL )

Adds a Role to the list. The most recently added parent takes precedence over parents that were previously added.

Adds a Role to the list. The most recently added parent takes precedence over parents that were previously added.

Parameters

$role
string
$parents
string|array

Returns

Nette\Security\Permission

Throws

Nette\InvalidArgumentException
Nette\InvalidStateException
public boolean
# hasRole( string $role )

Returns TRUE if the Role exists in the list.

Returns TRUE if the Role exists in the list.

Parameters

$role
string

Returns

boolean
public array
# getRoles( )

Returns all Roles.

Returns all Roles.

Returns

array
public array
# getRoleParents( string $role )

Returns existing Role's parents ordered by ascending priority.

Returns existing Role's parents ordered by ascending priority.

Parameters

$role
string

Returns

array
public boolean
# roleInheritsFrom( string $role, string $inherit, boolean $onlyParents = FALSE )

Returns TRUE if $role inherits from $inherit. If $onlyParents is TRUE, then $role must inherit directly from $inherit.

Returns TRUE if $role inherits from $inherit. If $onlyParents is TRUE, then $role must inherit directly from $inherit.

Parameters

$role
string
$inherit
string
$onlyParents
boolean

Returns

boolean

Throws

Nette\InvalidStateException
public Nette\Security\Permission
# removeRole( string $role )

Removes the Role from the list.

Removes the Role from the list.

Parameters

$role
string

Returns

Nette\Security\Permission

Throws

Nette\InvalidStateException
public Nette\Security\Permission
# removeAllRoles( )

Removes all Roles from the list.

Removes all Roles from the list.

Returns

Nette\Security\Permission
public Nette\Security\Permission
# addResource( string $resource, string $parent = NULL )

Adds a Resource having an identifier unique to the list.

Adds a Resource having an identifier unique to the list.

Parameters

$resource
string
$parent
string

Returns

Nette\Security\Permission

Throws

Nette\InvalidArgumentException
Nette\InvalidStateException
public boolean
# hasResource( string $resource )

Returns TRUE if the Resource exists in the list.

Returns TRUE if the Resource exists in the list.

Parameters

$resource
string

Returns

boolean
public array
# getResources( )

Returns all Resources.

Returns all Resources.

Returns

array
public boolean
# resourceInheritsFrom( string $resource, string $inherit, boolean $onlyParent = FALSE )

Returns TRUE if $resource inherits from $inherit. If $onlyParents is TRUE, then $resource must inherit directly from $inherit.

Returns TRUE if $resource inherits from $inherit. If $onlyParents is TRUE, then $resource must inherit directly from $inherit.

Parameters

$resource
string
$inherit
string
$onlyParent
boolean

Returns

boolean

Throws

Nette\InvalidStateException
public Nette\Security\Permission
# removeResource( string $resource )

Removes a Resource and all of its children.

Removes a Resource and all of its children.

Parameters

$resource
string

Returns

Nette\Security\Permission

Throws

Nette\InvalidStateException
public Nette\Security\Permission
# removeAllResources( )

Removes all Resources.

Removes all Resources.

Returns

Nette\Security\Permission
public Nette\Security\Permission
# allow( string|array|Nette\Security\IAuthorizator::ALL $roles = Nette\Security\IAuthorizator::ALL, string|array|Nette\Security\IAuthorizator::ALL $resources = Nette\Security\IAuthorizator::ALL, string|array|Nette\Security\IAuthorizator::ALL $privileges = Nette\Security\IAuthorizator::ALL, callable $assertion = NULL )

Allows one or more Roles access to [certain $privileges upon] the specified Resource(s). If $assertion is provided, then it must return TRUE in order for rule to apply.

Allows one or more Roles access to [certain $privileges upon] the specified Resource(s). If $assertion is provided, then it must return TRUE in order for rule to apply.

Parameters

$roles
string|array|Nette\Security\IAuthorizator::ALL
roles
$resources
string|array|Nette\Security\IAuthorizator::ALL
resources
$privileges
string|array|Nette\Security\IAuthorizator::ALL
privileges
$assertion
callable
assertion

Returns

Nette\Security\Permission
public Nette\Security\Permission
# deny( string|array|Nette\Security\IAuthorizator::ALL $roles = Nette\Security\IAuthorizator::ALL, string|array|Nette\Security\IAuthorizator::ALL $resources = Nette\Security\IAuthorizator::ALL, string|array|Nette\Security\IAuthorizator::ALL $privileges = Nette\Security\IAuthorizator::ALL, callable $assertion = NULL )

Denies one or more Roles access to [certain $privileges upon] the specified Resource(s). If $assertion is provided, then it must return TRUE in order for rule to apply.

Denies one or more Roles access to [certain $privileges upon] the specified Resource(s). If $assertion is provided, then it must return TRUE in order for rule to apply.

Parameters

$roles
string|array|Nette\Security\IAuthorizator::ALL
roles
$resources
string|array|Nette\Security\IAuthorizator::ALL
resources
$privileges
string|array|Nette\Security\IAuthorizator::ALL
privileges
$assertion
callable
assertion

Returns

Nette\Security\Permission
public Nette\Security\Permission
# removeAllow( string|array|Nette\Security\IAuthorizator::ALL $roles = Nette\Security\IAuthorizator::ALL, string|array|Nette\Security\IAuthorizator::ALL $resources = Nette\Security\IAuthorizator::ALL, string|array|Nette\Security\IAuthorizator::ALL $privileges = Nette\Security\IAuthorizator::ALL )

Removes "allow" permissions from the list in the context of the given Roles, Resources, and privileges.

Removes "allow" permissions from the list in the context of the given Roles, Resources, and privileges.

Parameters

$roles
string|array|Nette\Security\IAuthorizator::ALL
roles
$resources
string|array|Nette\Security\IAuthorizator::ALL
resources
$privileges
string|array|Nette\Security\IAuthorizator::ALL
privileges

Returns

Nette\Security\Permission
public Nette\Security\Permission
# removeDeny( string|array|Nette\Security\IAuthorizator::ALL $roles = Nette\Security\IAuthorizator::ALL, string|array|Nette\Security\IAuthorizator::ALL $resources = Nette\Security\IAuthorizator::ALL, string|array|Nette\Security\IAuthorizator::ALL $privileges = Nette\Security\IAuthorizator::ALL )

Removes "deny" restrictions from the list in the context of the given Roles, Resources, and privileges.

Removes "deny" restrictions from the list in the context of the given Roles, Resources, and privileges.

Parameters

$roles
string|array|Nette\Security\IAuthorizator::ALL
roles
$resources
string|array|Nette\Security\IAuthorizator::ALL
resources
$privileges
string|array|Nette\Security\IAuthorizator::ALL
privileges

Returns

Nette\Security\Permission
protected Nette\Security\Permission
# setRule( boolean $toAdd, boolean $type, string|array|Nette\Security\IAuthorizator::ALL $roles, string|array|Nette\Security\IAuthorizator::ALL $resources, string|array|Nette\Security\IAuthorizator::ALL $privileges, callable $assertion = NULL )

Performs operations on Access Control List rules.

Performs operations on Access Control List rules.

Parameters

$toAdd
boolean
operation add?
$type
boolean
type
$roles
string|array|Nette\Security\IAuthorizator::ALL
roles
$resources
string|array|Nette\Security\IAuthorizator::ALL
resources
$privileges
string|array|Nette\Security\IAuthorizator::ALL
privileges
$assertion
callable
assertion

Returns

Nette\Security\Permission

Throws

Nette\InvalidStateException
public boolean
# isAllowed( string|Nette\Security\IAuthorizator::ALL|Nette\Security\IRole $role = Nette\Security\IAuthorizator::ALL, string|Nette\Security\IAuthorizator::ALL|Nette\Security\IResource $resource = Nette\Security\IAuthorizator::ALL, string|Nette\Security\IAuthorizator::ALL $privilege = Nette\Security\IAuthorizator::ALL )

Returns TRUE if and only if the Role has access to [certain $privileges upon] the Resource.

Returns TRUE if and only if the Role has access to [certain $privileges upon] the Resource.

This method checks Role inheritance using a depth-first traversal of the Role list. 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.

Parameters

$role
string|Nette\Security\IAuthorizator::ALL|Nette\Security\IRole
role
$resource
string|Nette\Security\IAuthorizator::ALL|Nette\Security\IResource
resource
$privilege
string|Nette\Security\IAuthorizator::ALL
privilege

Returns

boolean

Throws

Nette\InvalidStateException

Implementation of

Nette\Security\IAuthorizator::isAllowed()
public mixed
# getQueriedRole( )

Returns real currently queried Role. Use by assertion.

Returns real currently queried Role. Use by assertion.

Returns

mixed
public mixed
# getQueriedResource( )

Returns real currently queried Resource. Use by assertion.

Returns real currently queried Resource. Use by assertion.

Returns

mixed
Methods inherited from Nette\Object
__call(), __callStatic(), __get(), __isset(), __set(), __unset(), extensionMethod(), getReflection()
Constants inherited from Nette\Security\IAuthorizator
ALL, ALLOW, DENY
Magic properties summary
public read-only array $roles
#
public read-only array $resources
#
public read-only mixed $queriedRole
#
public read-only mixed $queriedResource
#
Magic properties inherited from Nette\Object
$reflection
Nette 2.1 API documentation generated by ApiGen 2.8.0