Phalcon acl
NOTE
All classes are prefixed with Phalcon
Acl\Adapter\AbstractAdapter ¶
-
Namespace
Phalcon\Acl\Adapter
-
Uses
Phalcon\Acl\Enum
Phalcon\Events\AbstractEventsAware
Phalcon\Events\EventsAwareInterface
-
Extends
AbstractEventsAware
-
Implements
AdapterInterface
EventsAwareInterface
Adapter for Phalcon\Acl adapters
Properties¶
/**
* Access Granted
*
* @var bool
*/
protected $accessGranted = false;
/**
* Active access which the list is checking if some role can access it
*
* @var string|null
*/
protected $activeAccess;
/**
* Component which the list is checking if some role can access it
*
* @var string|null
*/
protected $activeComponent;
/**
* Role which the list is checking if it's allowed to certain
* component/access
*
* @var string|null
*/
protected $activeRole;
/**
* Default access
*
* @var int
*/
protected $defaultAccess;
Methods¶
Active access which the list is checking if some role can access it Component which the list is checking if some role can access it Role which the list is checking if it's allowed to certain component/access Returns the default ACL access level Sets the default access level (Phalcon\Acl\Enum::ALLOW or Phalcon\Acl\Enum::DENY)Acl\Adapter\AdapterInterface ¶
-
Namespace
Phalcon\Acl\Adapter
-
Uses
Phalcon\Acl\ComponentInterface
Phalcon\Acl\RoleInterface
-
Extends
-
Implements
Interface for Phalcon\Acl adapters
Methods¶
Adds a component to the ACL listAccess names can be a particular action, by example search, update, delete, etc. or a list of them
Adds access to components Do a role inherit from another existing role Adds a role to the ACL list. Second parameter lets to inherit access data from other existing rolepublic function allow( string $roleName, string $componentName, mixed $access, mixed $func = null ): void;
public function deny( string $roleName, string $componentName, mixed $access, mixed $func = null ): void;
public function isAllowed( mixed $roleName, mixed $componentName, string $access, array $parameters = null ): bool;
Acl\Adapter\Memory¶
-
Namespace
Phalcon\Acl\Adapter
-
Uses
Phalcon\Acl\Component
Phalcon\Acl\ComponentAwareInterface
Phalcon\Acl\ComponentInterface
Phalcon\Acl\Enum
Phalcon\Acl\Exception
Phalcon\Acl\Role
Phalcon\Acl\RoleAwareInterface
Phalcon\Acl\RoleInterface
ReflectionClass
ReflectionFunction
-
Extends
AbstractAdapter
-
Implements
Manages 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);
}
}
Properties¶
/**
* Access
*
* @var mixed
*/
protected $access;
/**
* Access List
*
* @var mixed
*/
protected $accessList;
/**
* Returns the latest function used to acquire access
*
* @var mixed
*/
protected $activeFunction;
/**
* Returns number of additional arguments(excluding role and resource) for active function
*
* @var int
*/
protected $activeFunctionCustomArgumentsCount = ;
/**
* Returns the latest key used to acquire access
*
* @var string|null
*/
protected $activeKey;
/**
* Components
*
* @var mixed
*/
protected $components;
/**
* Component Names
*
* @var mixed
*/
protected $componentsNames;
/**
* Function List
*
* @var mixed
*/
protected $func;
/**
* Default action for no arguments is `allow`
*
* @var mixed
*/
protected $noArgumentsDefaultAction;
/**
* Roles
*
* @var mixed
*/
protected $roles;
/**
* Role Inherits
*
* @var mixed
*/
protected $roleInherits;
Methods¶
Phalcon\Acl\Adapter\Memory constructor Adds a component to the ACL listAccess 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",
]
);
$acl->addRole("administrator", "consultant");
$acl->addRole("administrator", ["consultant", "consultant2"]);
$acl->addRole(
new Phalcon\Acl\Role("administrator"),
"consultant"
);
$acl->addRole("administrator", "consultant");
$acl->addRole("administrator", ["consultant", "consultant2"]);
public function allow( string $roleName, string $componentName, mixed $access, mixed $func = null ): void;
*
as wildcard // 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 browse on any component
$acl->allow("*", "*", "browse");
public function deny( string $roleName, string $componentName, mixed $access, mixed $func = null ): void;
*
as wildcard // 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 browse on any component
$acl->deny("*", "*", "browse");
isAllowed
action if a func
(callable) exists for accessKey
Return an array with every role registered in the list public function isAllowed( mixed $roleName, mixed $componentName, string $access, array $parameters = null ): bool;
// 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");
Phalcon\Enum::ALLOW
or Phalcon\Enum::DENY
) for no arguments provided in isAllowed action if there exists func for accessKey Acl\Component¶
-
Namespace
Phalcon\Acl
-
Uses
-
Extends
-
Implements
ComponentInterface
This class defines component entity and its description
Properties¶
/**
* Component description
*
* @var string
*/
private $description;
/**
* Component name
*
* @var string
*/
private $name;
Methods¶
Phalcon\Acl\Component constructorAcl\ComponentAwareInterface ¶
-
Namespace
Phalcon\Acl
-
Uses
-
Extends
-
Implements
Interface for classes which could be used in allow method as RESOURCE
Methods¶
Returns component nameAcl\ComponentInterface ¶
-
Namespace
Phalcon\Acl
-
Uses
-
Extends
-
Implements
Interface for Phalcon\Acl\Component
Methods¶
Magic method __toString Returns component description Returns the component nameAcl\Enum¶
-
Namespace
Phalcon\Acl
-
Uses
-
Extends
-
Implements
Constants for Phalcon\Acl\Adapter adapters
Constants¶
Acl\Exception¶
-
Namespace
Phalcon\Acl
-
Uses
-
Extends
\Exception
-
Implements
Class for exceptions thrown by Phalcon\Acl
Acl\Role¶
-
Namespace
Phalcon\Acl
-
Uses
-
Extends
-
Implements
RoleInterface
This class defines role entity and its description
Properties¶
/**
* Role description
*
* @var string
*/
private $description;
/**
* Role name
*
* @var string
*/
private $name;
Methods¶
Phalcon\Acl\Role constructorAcl\RoleAwareInterface ¶
-
Namespace
Phalcon\Acl
-
Uses
-
Extends
-
Implements
Interface for classes which could be used in allow method as ROLE
Methods¶
Returns role nameAcl\RoleInterface ¶
-
Namespace
Phalcon\Acl
-
Uses
-
Extends
-
Implements
Interface for Phalcon\Acl\Role