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 по умолчанию