Abstract Class Phalcon\Acl\Adapter\AbstractAdapter
Código fuente en GitHub
Namespace |
Phalcon\Acl\Adapter |
|
Uses |
Phalcon\Acl\Enum, Phalcon\Events\AbstractEventsAware, Phalcon\Events\EventsAwareInterface |
|
Extends |
AbstractEventsAware |
|
Implements |
AdapterInterface, EventsAwareInterface |
Adaptador para adaptadores Phalcon\Acl
Propiedades
/**
* 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;
Métodos
public function getActiveAccess(): string | null;
Active access which the list is checking if some role can access it
public function getActiveComponent(): string | null;
Component which the list is checking if some role can access it
public function getActiveRole(): string | null;
Role which the list is checking if it’s allowed to certain component/access
public function getDefaultAction(): int;
Devuelve el nivel de acceso ACL por defecto
public function setDefaultAction( int $defaultAccess ): void;
Sets the default access level (Phalcon\Acl\Enum::ALLOW or Phalcon\Acl\Enum::DENY)
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 $componentValue, mixed $accessList ): bool;
Añade un componente a la lista ACL
Access names can be a particular action, by example search, update, delete, etc. or a list of them
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
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;
Removes access from a component
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 getInheritedRoles( string $roleName = string ): 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
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\Acl\RoleAwareInterface, Phalcon\Acl\ComponentAwareInterface, Phalcon\Acl\ComponentInterface, ReflectionClass, 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 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 = 0;
/**
* 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;
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
Access names can be a particular action, by example search, update, delete, etc. or a list of them
Ejemplo:
// 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",
]
);
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;
Removes access from a component
public function getActiveFunction(): mixed;
Returns the latest function used to acquire access
public function getActiveFunctionCustomArgumentsCount(): int;
Returns number of additional arguments(excluding role and resource) for active function
public function getActiveKey(): string | null;
Returns the latest key used to acquire access
public function getComponents(): ComponentInterface[];
Devuelve un vector con cada componente registrado en la lista
public function getInheritedRoles( string $roleName = string ): 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
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\ComponentAwareInterface
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 |
\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 description
*
* @var string
*/
private description;
/**
* Role name
*
* @var string
*/
private name;
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\RoleAwareInterface
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