Abstract Class Phalcon\Acl\Adapter\AbstractAdapter
Código fuente en GitHub
Namespace |
Phalcon\Acl\Adapter |
|
Uses |
Phalcon\Acl\Enum, Phalcon\Events\ManagerInterface, Phalcon\Events\EventsAwareInterface |
|
Implements |
AdapterInterface, EventsAwareInterface |
Adaptador para adaptadores Phalcon\Acl
Propiedades
/**
* Active access which the list is checking if some role can access it
*
* @var string|null
*/
protected activeAccess;
/**
* Access Granted
*
* @var bool
*/
protected accessGranted = false;
/**
* Role which the list is checking if it's allowed to certain
* component/access
*
* @var string|null
*/
protected activeRole;
/**
* Component which the list is checking if some role can access it
*
* @var string|null
*/
protected activeComponent;
/**
* Default access
*
* @var int
*/
protected defaultAccess;
/**
* Events manager
*
* @var ManagerInterface|null
*/
protected eventsManager;
Métodos
public function getActiveAccess(): string|null
public function getActiveComponent(): string|null
public function getActiveRole(): string|null
public function getDefaultAction(): int;
Devuelve el nivel de acceso ACL por defecto
public function getEventsManager(): ManagerInterface;
Devuelve el gestor de eventos interno
public function setDefaultAction( int $defaultAccess ): void;
Establece el nivel de acceso predeterminado (Phalcon\Acl::ALLOW o Phalcon\Acl::DENY)
public function setEventsManager( ManagerInterface $eventsManager ): void;
Establece el gestor de eventos
Interface Phalcon\Acl\Adapter\AdapterInterface
Código fuente en GitHub
Namespace |
Phalcon\Acl\Adapter |
|
Uses |
Phalcon\Acl\ComponentInterface, Phalcon\Acl\RoleInterface |
Interfaz para adaptadores Phalcon\Acl
Métodos
public function addComponent( mixed $componentObject, mixed $accessList ): bool;
Añade un componente a la lista ACL
Los nombres de acceso pueden ser una acción particular, por ejemplo buscar, actualizar, eliminar, etc o una lista de ellos
public function addComponentAccess( string $componentName, mixed $accessList ): bool;
Añade acceso a los componentes
public function addInherit( string $roleName, mixed $roleToInherit ): bool;
Hace un rol heredero de otro rol existente
public function addRole( mixed $role, mixed $accessInherits = null ): bool;
Añade un rol a la lista ACL. Second parameter lets to inherit access data from other existing role
public function allow( string $roleName, string $componentName, mixed $access, mixed $func = null ): void;
Permitir el acceso a un rol en un componente
public function deny( string $roleName, string $componentName, mixed $access, mixed $func = null ): void;
Denegar acceso a un rol en un componente
public function dropComponentAccess( string $componentName, mixed $accessList ): void;
Elimina un acceso de un componente
public function getActiveAccess(): null | string;
Devuelve el acceso que la lista está verificando si algún rol puede acceder a él
public function getActiveComponent(): null | string;
Devuelve el componente que la lista está comprobando si algún rol puede acceder a él
public function getActiveRole(): null | string;
Devuelve el rol que la lista está comprobando si está permitido para cierto componente/acceso
public function getComponents(): ComponentInterface[];
Devuelve un vector con cada componente registrado en la lista
public function getDefaultAction(): int;
Devuelve el nivel de acceso ACL por defecto
public function getNoArgumentsDefaultAction(): int;
Devuelve el nivel de acceso ALC predeterminado cuando no se proporciona ningún argumento en la acción isAllowed
si existe una función para accessKey
public function getRoles(): RoleInterface[];
Devuelve un vector con cada rol registrado en la lista
public function isAllowed( mixed $roleName, mixed $componentName, string $access, array $parameters = null ): bool;
Comprueba si un rol puede acceder a una acción desde un componente
public function isComponent( string $componentName ): bool;
Comprueba si el componente existe en la lista de componentes
public function isRole( string $roleName ): bool;
Comprueba si existe un rol en la lista de roles
public function setDefaultAction( int $defaultAccess ): void;
Establece el nivel de acceso predeterminado (Phalcon\Acl\Enum::ALLOW o Phalcon\Acl\Enum::DENY)
public function setNoArgumentsDefaultAction( int $defaultAccess ): void;
Establece el nivel de acceso predeterminado (Phalcon\Acl\Enum::ALLOW o Phalcon\Acl\Enum::DENY) cuando no se proporcionan argumentos en la acción isAllowed
si existe función para accessKey
Class Phalcon\Acl\Adapter\Memory
Código fuente en GitHub
Namespace |
Phalcon\Acl\Adapter |
|
Uses |
Phalcon\Acl\Enum, Phalcon\Acl\Role, Phalcon\Acl\RoleInterface, Phalcon\Acl\Component, Phalcon\Acl\Exception, Phalcon\Events\Manager, Phalcon\Acl\RoleAware, Phalcon\Acl\ComponentAware, Phalcon\Acl\ComponentInterface, ReflectionFunction |
|
Extends |
AbstractAdapter |
Administra listas de ACL en memoria
$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);
}
}
Propiedades
/**
* Access
*
* @var mixed
*/
protected access;
/**
* Access List
*
* @var mixed
*/
protected accessList;
/**
* Returns 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 = 0;
/**
* Returns 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;
/**
* Roles Names
*
* @var mixed
*/
protected rolesNames;
Métodos
public function __construct();
Constructor Phalcon\Acl\Adapter\Memory
public function addComponent( mixed $componentValue, mixed $accessList ): bool;
Añade un componente a la lista ACL
Los nombre de acceso pueden ser una acción particular, por ejemplo buscar, actualizar, borrar, etc o una lista de ellos
Ejemplo:
// Add a component to the 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",
]
);
public function addComponentAccess( string $componentName, mixed $accessList ): bool;
Añade acceso a los componentes
public function addInherit( string $roleName, mixed $roleToInherits ): bool;
Hace un rol heredero de otro rol existente
$acl->addRole("administrator", "consultant");
$acl->addRole("administrator", ["consultant", "consultant2"]);
public function addRole( mixed $role, mixed $accessInherits = null ): bool;
Añade un rol a la lista ACL. El segundo parámetro permite heredar datos de acceso de otro rol existente
$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;
Permitir el acceso a un rol en un componente. Puede usar *
como comodín
// 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");
```php
public function deny( string $roleName, string $componentName, mixed $access, mixed $func = null ): void;
Denegar el acceso a un rol en un componente. Puede usar *
como comodín
// 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");
public function dropComponentAccess( string $componentName, mixed $accessList ): void;
Elimina un acceso de un componente
public function getActiveFunction(): mixed
public function getActiveFunctionCustomArgumentsCount(): int
public function getActiveKey(): string|null
public function getComponents(): ComponentInterface[];
Devuelve un vector con cada componente registrado en la lista
public function getNoArgumentsDefaultAction(): int;
Devuelve el nivel de acceso ACL predeterminado cuando no se proporcionan argumentos en la acción isAllowed
si una función
(callable) existe para accessKey
public function getRoles(): RoleInterface[];
Devuelve un vector con cada rol registrado en la lista
public function isAllowed( mixed $roleName, mixed $componentName, string $access, array $parameters = null ): bool;
Comprueba si un rol puede acceder a una acción desde un componente
// 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");
public function isComponent( string $componentName ): bool;
Comprueba si el componente existe en la lista de componentes
public function isRole( string $roleName ): bool;
Comprueba si existe un rol en la lista de roles
public function setNoArgumentsDefaultAction( int $defaultAccess ): void;
Establece el nivel de acceso predeterminado (Phalcon\Enum::ALLOW
o Phalcon\Enum::DENY
) cuando no se proporcionan argumentos en la acción isAllowed
si existe func
para accessKey
Class Phalcon\Acl\Component
Código fuente en GitHub
Namespace |
Phalcon\Acl |
|
Implements |
ComponentInterface |
Esta clase define la entidad componente y su descripción
Propiedades
/**
* Component description
*
* @var string
*/
private description;
/**
* Component name
*
* @var string
*/
private name;
Métodos
public function __construct( string $name, string $description = null );
Constructor Phalcon\Acl\Component
public function __toString(): string
public function getDescription(): string
public function getName(): string
Interface Phalcon\Acl\ComponentAware
Código fuente en GitHub
Interfaz para clases que se podrían usar en el método permitir como RECURSO
Métodos
public function getComponentName(): string;
Devuelve el nombre del componente
Interface Phalcon\Acl\ComponentInterface
Código fuente en GitHub
Interfaz para Phalcon\Acl\Component
Métodos
public function __toString(): string;
Método mágico __toString
public function getDescription(): string;
Devuelve la descripción del componente
public function getName(): string;
Devuelve el nombre del componente
Class Phalcon\Acl\Enum
Código fuente en GitHub
Constantes para adaptadores Phalcon\Acl\Adapter
Constantes
const ALLOW = 1;
const DENY = 0;
Class Phalcon\Acl\Exception
Código fuente en GitHub
Namespace |
Phalcon\Acl |
|
Extends |
\Phalcon\Exception |
Clase para excepciones lanzadas por Phalcon\Acl
Class Phalcon\Acl\Role
Código fuente en GitHub
Namespace |
Phalcon\Acl |
|
Implements |
RoleInterface |
Esta clase define la entidad rol y su descripción
Propiedades
/**
* Role name
*
* @var string
*/
private name;
/**
* Role description
*
* @var string
*/
private description;
Métodos
public function __construct( string $name, string $description = null );
Constructor Phalcon\Acl\Role
public function __toString(): string
public function getDescription(): string
public function getName(): string
Interface Phalcon\Acl\RoleAware
Código fuente en GitHub
Interfaz para clases que se podrían usar en el método permitir como ROL
Métodos
public function getRoleName(): string;
Devuelve el nombre del rol
Interface Phalcon\Acl\RoleInterface
Código fuente en GitHub
Interfaz para Phalcon\Acl\Role
Métodos
public function __toString(): string;
Método mágico __toString
public function getDescription(): string;
Devuelve la descripción del rol
public function getName(): string;
Devuelve el nombre del rol