Acl\Adapter\AbstractAdapter
AbstractSource on GitHubAdapter for Phalcon\Acl adapters
Phalcon\Events\AbstractEventsAwarePhalcon\Acl\Adapter\AbstractAdapter— implementsPhalcon\Acl\Adapter\AdapterInterface,Phalcon\Events\EventsAwareInterface
Uses Phalcon\Acl\Enum · Phalcon\Events\AbstractEventsAware · Phalcon\Events\EventsAwareInterface
Method Summary
publicstring|nullgetActiveAccess()Active access which the list is checking if some role can access itpublicstring|nullgetActiveComponent()Component which the list is checking if some role can access itpublicstring|nullgetActiveRole()Role which the list is checking if it's allowed to certainpublicintgetDefaultAction()Returns the default ACL access levelpublicvoidsetDefaultAction( int$defaultAccess )Sets the default access level (Phalcon\Acl\Enum::ALLOW or Phalcon\Acl\Enum::DENY)Properties
protectedint$accessGranted = Enum::DENYAccess Grantedprotectedstring|null$activeAccess = nullActive access which the list is checking if some role can access itprotectedstring|null$activeComponent = nullComponent which the list is checking if some role can access itprotectedstring|null$activeRole = nullRole which the list is checking if it's allowed to certain component/accessprotectedint$defaultAccess = Enum::DENYDefault accessMethods
getActiveAccess()
public function getActiveAccess(): string|null;Active access which the list is checking if some role can access it
getActiveComponent()
public function getActiveComponent(): string|null;Component which the list is checking if some role can access it
getActiveRole()
public function getActiveRole(): string|null;Role which the list is checking if it’s allowed to certain component/access
getDefaultAction()
public function getDefaultAction(): int;Returns the default ACL access level
setDefaultAction()
public function setDefaultAction( int $defaultAccess ): void;Sets the default access level (Phalcon\Acl\Enum::ALLOW or Phalcon\Acl\Enum::DENY)
Acl\Adapter\AdapterInterface
InterfaceSource on GitHubInterface for Phalcon\Acl adapters
Phalcon\Acl\Adapter\AdapterInterface
Uses Phalcon\Acl\ComponentInterface · Phalcon\Acl\RoleInterface
Method Summary
publicbooladdComponent(mixed$componentValue,mixed$accessList)Adds a component to the ACL listpublicbooladdComponentAccess(string$componentName,mixed$accessList)Adds access to componentspublicbooladdInherit(string$roleName,mixed$roleToInherits)Do a role inherit from another existing rolepublicbooladdRole(mixed$role,mixed$accessInherits = null)Adds a role to the ACL list. Second parameter lets to inherit access datapublicvoidallow(string$roleName,string$componentName,mixed$access,mixed$func = null)Allow access to a role on a componentpublicvoiddeny(string$roleName,string$componentName,mixed$access,mixed$func = null)Deny access to a role on a componentpublicvoiddropComponentAccess(string$componentName,mixed$accessList)Removes access from a componentpublicnull|stringgetActiveAccess()Returns the access which the list is checking if some role can access itpublicnull|stringgetActiveComponent()Returns the component which the list is checking if some role can accesspublicnull|stringgetActiveRole()Returns the role which the list is checking if it's allowed to certainpublicComponentInterface[]getComponents()Return an array with every component registered in the listpublicintgetDefaultAction()Returns the default ACL access levelpublicarraygetInheritedRoles( string$roleName = "" )Returns the inherited roles for a passed role name. If no role namepublicintgetNoArgumentsDefaultAction()Returns the default ACL access level for no arguments provided inpublicRoleInterface[]getRoles()Return an array with every role registered in the listpublicboolisAllowed(mixed$roleName,mixed$componentName,string$access,array$parameters = null)Check whether a role is allowed to access an action from a componentpublicboolisComponent( string$componentName )Check whether component exist in the components listpublicboolisRole( string$roleName )Check whether role exist in the roles listpublicvoidsetDefaultAction( int$defaultAccess )Sets the default access level (Phalcon\Acl\Enum::ALLOW or Phalcon\Acl\Enum::DENY)publicvoidsetNoArgumentsDefaultAction( int$defaultAccess )Sets the default access level (Phalcon\Acl\Enum::ALLOW or Phalcon\Acl\Enum::DENY)Methods
addComponent()
public function addComponent(
mixed $componentValue,
mixed $accessList
): bool;Adds a component to the ACL list
Access names can be a particular action, by example search, update, delete, etc. or a list of them
addComponentAccess()
public function addComponentAccess(
string $componentName,
mixed $accessList
): bool;Adds access to components
addInherit()
public function addInherit(
string $roleName,
mixed $roleToInherits
): bool;Do a role inherit from another existing role
addRole()
public function addRole(
mixed $role,
mixed $accessInherits = null
): bool;Adds a role to the ACL list. Second parameter lets to inherit access data from other existing role
allow()
public function allow(
string $roleName,
string $componentName,
mixed $access,
mixed $func = null
): void;Allow access to a role on a component
deny()
public function deny(
string $roleName,
string $componentName,
mixed $access,
mixed $func = null
): void;Deny access to a role on a component
dropComponentAccess()
public function dropComponentAccess(
string $componentName,
mixed $accessList
): void;Removes access from a component
getActiveAccess()
public function getActiveAccess(): null|string;Returns the access which the list is checking if some role can access it
getActiveComponent()
public function getActiveComponent(): null|string;Returns the component which the list is checking if some role can access it
getActiveRole()
public function getActiveRole(): null|string;Returns the role which the list is checking if it’s allowed to certain component/access
getComponents()
public function getComponents(): ComponentInterface[];Return an array with every component registered in the list
getDefaultAction()
public function getDefaultAction(): int;Returns the default ACL access level
getInheritedRoles()
public function getInheritedRoles( string $roleName = "" ): array;Returns the inherited roles for a passed role name. If no role name has been specified it will return the whole array. If the role has not been found it returns an empty array
getNoArgumentsDefaultAction()
public function getNoArgumentsDefaultAction(): int;Returns the default ACL access level for no arguments provided in isAllowed action if there exists func for accessKey
getRoles()
public function getRoles(): RoleInterface[];Return an array with every role registered in the list
isAllowed()
public function isAllowed(
mixed $roleName,
mixed $componentName,
string $access,
array $parameters = null
): bool;Check whether a role is allowed to access an action from a component
isComponent()
public function isComponent( string $componentName ): bool;Check whether component exist in the components list
isRole()
public function isRole( string $roleName ): bool;Check whether role exist in the roles list
setDefaultAction()
public function setDefaultAction( int $defaultAccess ): void;Sets the default access level (Phalcon\Acl\Enum::ALLOW or Phalcon\Acl\Enum::DENY)
setNoArgumentsDefaultAction()
public function setNoArgumentsDefaultAction( int $defaultAccess ): void;Sets the default access level (Phalcon\Acl\Enum::ALLOW or Phalcon\Acl\Enum::DENY) for no arguments provided in isAllowed action if there exists func for accessKey
Acl\Adapter\Memory
ClassSource on GitHubManages ACL lists in memory
$acl = new \Phalcon\Acl\Adapter\Memory();
$acl->setDefaultAction(
\Phalcon\Acl\Enum::DENY
);
// Register roles
$roles = [
"users" => new \Phalcon\Acl\Role("Users"),
"guests" => new \Phalcon\Acl\Role("Guests"),
];
foreach ($roles as $role) {
$acl->addRole($role);
}
// Private area components
$privateComponents = [
"companies" => ["index", "search", "new", "edit", "save", "create", "delete"],
"products" => ["index", "search", "new", "edit", "save", "create", "delete"],
"invoices" => ["index", "profile"],
];
foreach ($privateComponents as $componentName => $actions) {
$acl->addComponent(
new \Phalcon\Acl\Component($componentName),
$actions
);
}
// Public area components
$publicComponents = [
"index" => ["index"],
"about" => ["index"],
"session" => ["index", "register", "start", "end"],
"contact" => ["index", "send"],
];
foreach ($publicComponents as $componentName => $actions) {
$acl->addComponent(
new \Phalcon\Acl\Component($componentName),
$actions
);
}
// Grant access to public areas to both users and guests
foreach ($roles as $role) {
foreach ($publicComponents as $component => $actions) {
$acl->allow($role->getName(), $component, "*");
}
}
// Grant access to private area to role Users
foreach ($privateComponents as $component => $actions) {
foreach ($actions as $action) {
$acl->allow("Users", $component, $action);
}
}Phalcon\Events\AbstractEventsAwarePhalcon\Acl\Adapter\AbstractAdapterPhalcon\Acl\Adapter\Memory
Uses Phalcon\Acl\Component · Phalcon\Acl\ComponentAwareInterface · Phalcon\Acl\ComponentInterface · Phalcon\Acl\Enum · Phalcon\Acl\Exceptions\AccessRuleNotFound · Phalcon\Acl\Exceptions\CircularInheritanceError · Phalcon\Acl\Exceptions\ElementNotFound · Phalcon\Acl\Exceptions\InvalidAccessList · Phalcon\Acl\Exceptions\InvalidComponentImplementation · Phalcon\Acl\Exceptions\InvalidRoleImplementation · Phalcon\Acl\Exceptions\InvalidRoleType · Phalcon\Acl\Exceptions\MissingFunctionParameters · Phalcon\Acl\Exceptions\ParameterTypeMismatch · Phalcon\Acl\Exceptions\RoleNotFoundException · Phalcon\Acl\Role · Phalcon\Acl\RoleAwareInterface · Phalcon\Acl\RoleInterface · ReflectionClass · ReflectionFunction · ReflectionNamedType
Method Summary
public__construct()Phalcon\Acl\Adapter\Memory constructorpublicbooladdComponent(mixed$componentValue,mixed$accessList)Adds a component to the ACL listpublicbooladdComponentAccess(string$componentName,mixed$accessList)Adds access to componentspublicbooladdInherit(string$roleName,mixed$roleToInherits)Do a role inherit from another existing rolepublicbooladdRole(mixed$role,mixed$accessInherits = null)Adds a role to the ACL list. Second parameter allows inheriting access data from other existing rolepublicvoidallow(string$roleName,string$componentName,mixed$access,mixed$func = null)Allow access to a role on a component. You can use * as wildcardpublicvoiddeny(string$roleName,string$componentName,mixed$access,mixed$func = null)Deny access to a role on a component. You can use * as wildcardpublicvoiddropComponentAccess(string$componentName,mixed$accessList)Removes access from a componentpublicmixedgetActiveFunction()Returns the latest function used to acquire accesspublicintgetActiveFunctionCustomArgumentsCount()Returns number of additional arguments(excluding role and resource) for active functionpublicstring|nullgetActiveKey()Returns the latest key used to acquire accesspublicComponentInterface[]getComponents()Return an array with every component registered in the listpublicarraygetInheritedRoles( string$roleName = "" )Returns the inherited roles for a passed role name. If no role namepublicintgetNoArgumentsDefaultAction()Returns the default ACL access level for no arguments provided inpublicRoleInterface[]getRoles()Return an array with every role registered in the listpublicboolisAllowed(mixed$roleName,mixed$componentName,string$access,array$parameters = null)Check whether a role is allowed to access an action from a componentpublicboolisComponent( string$componentName )Check whether component exist in the components listpublicboolisRole( string$roleName )Check whether role exist in the roles listpublicvoidsetNoArgumentsDefaultAction( int$defaultAccess )Sets the default access level (Phalcon\Enum::ALLOW or Phalcon\Enum::DENY)Properties
protectedarray$accessAccessprotectedarray$accessListAccess Listprotectedmixed$activeFunctionReturns the latest function used to acquire accessprotectedint$activeFunctionCustomArgumentsCount = 0Returns number of additional arguments(excluding role and resource) for active functionprotectedstring|null$activeKey = nullReturns the latest key used to acquire accessprotectedarray$componentsComponentsprotectedarray$componentsNamesComponent Namesprotectedarray$functionsFunction Listprotectedint$noArgumentsDefaultAction = Enum::DENYDefault action for no arguments is allowprotectedarray$roleInheritsRole Inheritsprotectedarray$rolesRolesMethods
__construct()
public function __construct();Phalcon\Acl\Adapter\Memory constructor
addComponent()
public function addComponent(
mixed $componentValue,
mixed $accessList
): bool;Adds a component to the ACL list
Access names can be a particular action, by example search, update, delete, etc. or a list of them
Example:
// Add a component to the list allowing access to an action
$acl->addComponent(
new Phalcon\Acl\Component("customers"),
"search"
);
$acl->addComponent("customers", "search");
// Add a component with an access list
$acl->addComponent(
new Phalcon\Acl\Component("customers"),
[
"create",
"search",
]
);
$acl->addComponent(
"customers",
[
"create",
"search",
]
);addComponentAccess()
public function addComponentAccess(
string $componentName,
mixed $accessList
): bool;Adds access to components
addInherit()
public function addInherit(
string $roleName,
mixed $roleToInherits
): bool;Do a role inherit from another existing role
$acl->addRole("administrator", "consultant");
$acl->addRole("administrator", ["consultant", "consultant2"]);addRole()
public function addRole(
mixed $role,
mixed $accessInherits = null
): bool;Adds a role to the ACL list. Second parameter allows inheriting access data from other existing role
If the role already exists this method returns false and the
accessInherits argument is ignored; the existing role is left
unchanged.
$acl->addRole(
new Phalcon\Acl\Role("administrator"),
"consultant"
);
$acl->addRole("administrator", "consultant");
$acl->addRole("administrator", ["consultant", "consultant2"]);allow()
public function allow(
string $roleName,
string $componentName,
mixed $access,
mixed $func = null
): void;Allow access to a role on a component. You can use * as wildcard
A * role is an eager snapshot: it expands to the roles that exist when
allow() is called, so roles added afterwards do not inherit the grant.
// Allow access to guests to search on customers
$acl->allow("guests", "customers", "search");
// Allow access to guests to search or create on customers
$acl->allow("guests", "customers", ["search", "create"]);
// Allow access to any role to browse on products
$acl->allow("*", "products", "browse");
// Allow access to any role to perform any action on any component
$acl->allow("*", "*", "*");deny()
public function deny(
string $roleName,
string $componentName,
mixed $access,
mixed $func = null
): void;Deny access to a role on a component. You can use * as wildcard
A * role is an eager snapshot: it expands to the roles that exist when
deny() is called, so roles added afterwards do not inherit the rule.
// Deny access to guests to search on customers
$acl->deny("guests", "customers", "search");
// Deny access to guests to search or create on customers
$acl->deny("guests", "customers", ["search", "create"]);
// Deny access to any role to browse on products
$acl->deny("*", "products", "browse");
// Deny access to any role to perform any action on any component
$acl->deny("*", "*", "*");dropComponentAccess()
public function dropComponentAccess(
string $componentName,
mixed $accessList
): void;Removes access from a component
getActiveFunction()
public function getActiveFunction(): mixed;Returns the latest function used to acquire access
getActiveFunctionCustomArgumentsCount()
public function getActiveFunctionCustomArgumentsCount(): int;Returns number of additional arguments(excluding role and resource) for active function
getActiveKey()
public function getActiveKey(): string|null;Returns the latest key used to acquire access
getComponents()
public function getComponents(): ComponentInterface[];Return an array with every component registered in the list
getInheritedRoles()
public function getInheritedRoles( string $roleName = "" ): array;Returns the inherited roles for a passed role name. If no role name has been specified it will return the whole array. If the role has not been found it returns an empty array
getNoArgumentsDefaultAction()
public function getNoArgumentsDefaultAction(): int;Returns the default ACL access level for no arguments provided in
isAllowed action if a func (callable) exists for accessKey
getRoles()
public function getRoles(): RoleInterface[];Return an array with every role registered in the list
isAllowed()
public function isAllowed(
mixed $roleName,
mixed $componentName,
string $access,
array $parameters = null
): bool;Check whether a role is allowed to access an action from a component
// Does andres have access to the customers component to create?
$acl->isAllowed("andres", "Products", "create");
// Do guests have access to any component to edit?
$acl->isAllowed("guests", "*", "edit");isComponent()
public function isComponent( string $componentName ): bool;Check whether component exist in the components list
isRole()
public function isRole( string $roleName ): bool;Check whether role exist in the roles list
setNoArgumentsDefaultAction()
public function setNoArgumentsDefaultAction( int $defaultAccess ): void;Sets the default access level (Phalcon\Enum::ALLOW or Phalcon\Enum::DENY)
for no arguments provided in isAllowed action if there exists func for
accessKey
Acl\Component
ClassSource on GitHubThis class defines component entity and its description
Phalcon\Acl\Component— implementsPhalcon\Acl\ComponentInterface
Uses Phalcon\Acl\Exceptions\ForbiddenWildcard
Method Summary
public__construct(string$name,string$description = null)Phalcon\Acl\Component constructorpublicstring__toString()publicstring|nullgetDescription()publicstringgetName()Methods
__construct()
public function __construct(
string $name,
string $description = null
);Phalcon\Acl\Component constructor
__toString()
public function __toString(): string;getDescription()
public function getDescription(): string|null;getName()
public function getName(): string;Acl\ComponentAwareInterface
InterfaceSource on GitHubInterface for classes which could be used in allow method as RESOURCE
Phalcon\Acl\ComponentAwareInterface
Method Summary
Methods
getComponentName()
public function getComponentName(): string;Returns component name
Acl\ComponentInterface
InterfaceSource on GitHubInterface for Phalcon\Acl\Component
Phalcon\Acl\ComponentInterface
Method Summary
publicstring__toString()Magic method __toStringpublicstring|nullgetDescription()Returns component descriptionpublicstringgetName()Returns the component nameMethods
__toString()
public function __toString(): string;Magic method __toString
getDescription()
public function getDescription(): string|null;Returns component description
getName()
public function getName(): string;Returns the component name
Acl\Enum
ClassSource on GitHubConstants for Phalcon\Acl\Adapter adapters
Phalcon\Acl\Enum
Constants
intALLOW = 1intDENY = 0Acl\Exception
ClassSource on GitHubClass for exceptions thrown by Phalcon\Acl
\ExceptionPhalcon\Acl\ExceptionPhalcon\Acl\Exceptions\AccessRuleNotFoundPhalcon\Acl\Exceptions\CircularInheritanceErrorPhalcon\Acl\Exceptions\ElementNotFoundPhalcon\Acl\Exceptions\ForbiddenWildcardPhalcon\Acl\Exceptions\InvalidAccessListPhalcon\Acl\Exceptions\InvalidComponentImplementationPhalcon\Acl\Exceptions\InvalidRoleImplementationPhalcon\Acl\Exceptions\InvalidRoleTypePhalcon\Acl\Exceptions\MissingFunctionParametersPhalcon\Acl\Exceptions\ParameterTypeMismatchPhalcon\Acl\Exceptions\RoleNotFoundException
Acl\Exceptions\AccessRuleNotFound
ClassSource on GitHub\ExceptionPhalcon\Acl\ExceptionPhalcon\Acl\Exceptions\AccessRuleNotFound
Uses Phalcon\Acl\Exception
Method Summary
Methods
__construct()
public function __construct(
string $accessName,
string $componentName
);Acl\Exceptions\CircularInheritanceError
ClassSource on GitHub\ExceptionPhalcon\Acl\ExceptionPhalcon\Acl\Exceptions\CircularInheritanceError
Uses Phalcon\Acl\Exception
Method Summary
Methods
__construct()
public function __construct( string $roleName );Acl\Exceptions\ElementNotFound
ClassSource on GitHub\ExceptionPhalcon\Acl\ExceptionPhalcon\Acl\Exceptions\ElementNotFound
Uses Phalcon\Acl\Exception
Acl\Exceptions\ForbiddenWildcard
ClassSource on GitHub\ExceptionPhalcon\Acl\ExceptionPhalcon\Acl\Exceptions\ForbiddenWildcard
Uses Phalcon\Acl\Exception
Method Summary
Methods
__construct()
public function __construct( string $elementType );Acl\Exceptions\InvalidAccessList
ClassSource on GitHub\ExceptionPhalcon\Acl\ExceptionPhalcon\Acl\Exceptions\InvalidAccessList
Uses Phalcon\Acl\Exception
Method Summary
Methods
__construct()
public function __construct();Acl\Exceptions\InvalidComponentImplementation
ClassSource on GitHub\ExceptionPhalcon\Acl\ExceptionPhalcon\Acl\Exceptions\InvalidComponentImplementation
Uses Phalcon\Acl\Exception
Method Summary
Methods
__construct()
public function __construct();Acl\Exceptions\InvalidRoleImplementation
ClassSource on GitHub\ExceptionPhalcon\Acl\ExceptionPhalcon\Acl\Exceptions\InvalidRoleImplementation
Uses Phalcon\Acl\Exception
Method Summary
Methods
__construct()
public function __construct();Acl\Exceptions\InvalidRoleType
ClassSource on GitHub\ExceptionPhalcon\Acl\ExceptionPhalcon\Acl\Exceptions\InvalidRoleType
Uses Phalcon\Acl\Exception
Method Summary
Methods
__construct()
public function __construct();Acl\Exceptions\MissingFunctionParameters
ClassSource on GitHub\ExceptionPhalcon\Acl\ExceptionPhalcon\Acl\Exceptions\MissingFunctionParameters
Uses Phalcon\Acl\Exception
Acl\Exceptions\ParameterTypeMismatch
ClassSource on GitHub\ExceptionPhalcon\Acl\ExceptionPhalcon\Acl\Exceptions\ParameterTypeMismatch
Uses Phalcon\Acl\Exception
Acl\Exceptions\RoleNotFoundException
ClassSource on GitHub\ExceptionPhalcon\Acl\ExceptionPhalcon\Acl\Exceptions\RoleNotFoundException
Uses Phalcon\Acl\Exception
Method Summary
Methods
__construct()
public function __construct( string $roleName );Acl\Role
ClassSource on GitHubThis class defines role entity and its description
Phalcon\Acl\Role— implementsPhalcon\Acl\RoleInterface
Uses Phalcon\Acl\Exceptions\ForbiddenWildcard
Method Summary
public__construct(string$name,string$description = null)Phalcon\Acl\Role constructorpublicstring__toString()publicstring|nullgetDescription()publicstringgetName()Methods
__construct()
public function __construct(
string $name,
string $description = null
);Phalcon\Acl\Role constructor
__toString()
public function __toString(): string;getDescription()
public function getDescription(): string|null;getName()
public function getName(): string;Acl\RoleAwareInterface
InterfaceSource on GitHubInterface for classes which could be used in allow method as ROLE
Phalcon\Acl\RoleAwareInterface
Method Summary
Methods
getRoleName()
public function getRoleName(): string;Returns role name
Acl\RoleInterface
InterfaceSource on GitHubInterface for Phalcon\Acl\Role
Phalcon\Acl\RoleInterface
Method Summary
publicstring__toString()Magic method __toStringpublicstring|nullgetDescription()Returns role descriptionpublicstringgetName()Returns the role nameMethods
__toString()
public function __toString(): string;Magic method __toString
getDescription()
public function getDescription(): string|null;Returns role description
getName()
public function getName(): string;Returns the role name