Secciones

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

Namespace Phalcon\Acl

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

Namespace Phalcon\Acl

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

Namespace Phalcon\Acl

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

Namespace Phalcon\Acl

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

Namespace Phalcon\Acl

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