Phalcon\Acl\Adapter\Memory
Класс Phalcon\Acl\Adapter\Memory
расширяет абстрактный класс Phalcon\Acl\Adapter
Реализует Phalcon\Events\EventsAwareInterface, Phalcon\Acl\AdapterInterface
Управление списками ACL в памяти
<?php
$acl = new \Phalcon\Acl\Adapter\Memory();
$acl->setDefaultAction(
\Phalcon\Acl::DENY
);
// Регистрация ролей
$roles = [
"users" => new \Phalcon\Acl\Role("Users"),
"guests" => new \Phalcon\Acl\Role("Guests"),
];
foreach ($roles as $role) {
$acl->addRole($role);
}
// Ресурсы частной зоны
$privateResources = [
"companies" => ["index", "search", "new", "edit", "save", "create", "delete"],
"products" => ["index", "search", "new", "edit", "save", "create", "delete"],
"invoices" => ["index", "profile"],
];
foreach ($privateResources as $resourceName => $actions) {
$acl->addResource(
new \Phalcon\Acl\Resource($resourceName),
$actions
);
}
// Ресурсы общественных зон
$publicResources = [
"index" => ["index"],
"about" => ["index"],
"session" => ["index", "register", "start", "end"],
"contact" => ["index", "send"],
];
foreach ($publicResources as $resourceName => $actions) {
$acl->addResource(
new \Phalcon\Acl\Resource($resourceName),
$actions
);
}
// Предоставление доступа к общим зонам как пользователям, так и гостям
foreach ($roles as $role){
foreach ($publicResources as $resource => $actions) {
$acl->allow($role->getName(), $resource, "*");
}
}
// Предоставление доступа к частной области пользователям роли
foreach ($privateResources as $resource => $actions) {
foreach ($actions as $action) {
$acl->allow("Users", $resource, $action);
}
}
Methods
public __construct ()
Phalcon\Acl\Adapter\Memory конструктор
public addRole (RoleInterface | string $role, [array | string $accessInherits])
Добавляет роль в список ACL. Второй параметр позволяет наследовать данные доступа из другого существующеq роли. Пример :
<?php
$acl->addRole(
new Phalcon\Acl\Role("administrator"),
"consultant"
);
$acl->addRole("administrator", "consultant");
public addInherit (mixed $roleName, mixed $roleToInherit)
Наследование роли от другой существующей роли
public isRole (mixed $roleName)
Проверить существует ли роль в списке ролей
public isResource (mixed $resourceName)
Проверить, существует ли ресурс в списке ресурсов
public addResource (Phalcon\Acl\Resource | string $resourceValue, array | string $accessList)
Добавление ресурса в список имена доступа ACL может быть конкретное действие, например поиск, обновление, удаление и т. д. или их список. Пример :
<?php
// Добавление ресурса в список, разрешающего доступ к действию
$acl->addResource(
new Phalcon\Acl\Resource("customers"),
"search"
);
$acl->addResource("customers", "search");
// Add a resource with an access list
$acl->addResource(
new Phalcon\Acl\Resource("customers"),
[
"create",
"search",
]
);
$acl->addResource(
"customers",
[
"create",
"search",
]
);
public addResourceAccess (mixed $resourceName, array | string $accessList)
Добавляет доступ к ресурсам
public dropResourceAccess (mixed $resourceName, array | string $accessList)
Удаляет доступ из ресурса
protected _allowOrDeny (mixed $roleName, mixed $resourceName, mixed $access, mixed $action, [mixed $func])
Проверяет, имеет ли роль доступ к ресурсу
public allow (mixed $roleName, mixed $resourceName, mixed $access, [mixed $func])
Разрешить доступ к роли на ресурсе можно использовать подстановочный знак"*". Пример:
<?php
//Разрешить доступ гостям для поиска клиентов
$acl->allow("guests", "customers", "search");
//Разрешить доступ к гостям для поиска или создания на клиентов
$acl->allow("guests", "customers", ["search", "create"]);
//Разрешить доступ к любой роли для просмотра продуктов
$acl->allow("*", "products", "browse");
//Разрешить доступ к любой роли для просмотра на любом ресурсе
$acl->allow("*", "*", "browse");
public deny (mixed $roleName, mixed $resourceName, mixed $access, [mixed $func])
Запретить доступ к роли на ресурсе можно использовать подстановочный знак"*". Пример:
<?php
//Запретить доступ гостей к поиску клиентов
$acl->deny("guests", "customers", "search");
//Запрет доступа к гостям для поиска или создания клиентов
$acl->deny("guests", "customers", ["search", "create"]);
//Запретить доступ к любой роли для просмотра продуктов
$acl->deny("*", "products", "browse");
//Запретить доступ к любой роли для просмотра на любом ресурсе
$acl->deny("*", "*", "browse");
public isAllowed (RoleInterface | RoleAware | string $roleName, ResourceInterface | ResourceAware | string $resourceName, mixed $access, [array $parameters])
Проверить, разрешен ли роли доступ к действию из ресурса. Пример:
<?php
//Имеет ли andres доступ к ресурсу клиентов для создания?
$acl->isAllowed("andres", "Products", "create");
//Есть ли у гостей доступ к какому-либо ресурсу для редактирования?
$acl->isAllowed("guests", "*", "edit");
public setNoArgumentsDefaultAction (mixed $defaultAccess)
Устанавливает уровень доступа по умолчанию (Phalcon\Acl::ALLOW или Phalcon\Acl::DENY) для аргументов, не предоставленных в действии isAllowed, если существует func для accessKey
public getNoArgumentsDefaultAction ()
Возвращает уровень доступа ACL по умолчанию для аргументов, не предоставленных в действии isAllowed, если существует func для accessKey
public getRoles ()
Возвращает массив с каждой ролью, зарегистрированной в списке
public getResources ()
Возвращает массив с каждым ресурсом, зарегистрированным в списке
public getActiveRole () наследуется от Phalcon\Acl\Adapter
Роль, которую проверяет список, разрешен ли доступ к определенному ресурсу
public getActiveResource () наследуется от Phalcon\Acl\Adapter
Ресурс, который проверяет, может ли какая-либо роль получить к нему доступ
public getActiveAccess () наследуется от Phalcon\Acl\Adapter
Активный доступ, проверяет список, может ли какая-либо роль получить к нему доступ
public setEventsManager (Phalcon\Events\ManagerInterface $eventsManager) наследуется от Phalcon\Acl\Adapter
Задает диспетчер событий
public getEventsManager () наследуется от Phalcon\Acl\Adapter
Возвращает внутренний менеджер событий
public setDefaultAction (mixed $defaultAccess) наследуется от Phalcon\Acl\Adapter
Устанавливает уровень доступа по умолчанию (Phalcon\Acl::ALLOW или Phalcon\Acl::DENY)
public getDefaultAction () наследуется от Phalcon\Acl\Adapter
Возвращает уровень доступа ACL по умолчанию