Класс Phalcon\Acl\Adapter\Memory
extends абстрактный класс Phalcon\Acl\Adapter
implements Phalcon\Events\EventsAwareInterface, Phalcon\Acl\AdapterInterface
Управляет списками ACL в памяти
$acl = new \Phalcon\Acl\Adapter\Memory();
$acl->setDefaultAction(
\Phalcon\Acl::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 resources
$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
);
}
// Public area resources
$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
);
}
// Grant access to public areas to both users and guests
foreach ($roles as $role){
foreach ($publicResources as $resource => $actions) {
$acl->allow($role->getName(), $resource, "*");
}
}
// Grant access to private area to role Users
foreach ($privateResources as $resource => $actions) {
foreach ($actions as $action) {
$acl->allow("Users", $resource, $action);
}
}
Методы
public __construct ()
Конструктор Phalcon\Acl\Adapter\Memory
public addRole (RoleInterface | string $role, [array | string $accessInherits])
Добавляет роль в список ACL. Второй параметр позволяет унаследовать данные доступа от другой существующей роли. Пример:
$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. Имена доступа могут представлять собой определённое действие (например, поиск, обновление, удаление) или список таких действий. Пример:
// Add a resource to the the list allowing access to an action
$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])
Разрешает доступ роли к ресурсу. Можно использовать «*» в качестве подстановки. Пример:
//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 resource
$acl->allow("*", "*", "browse");
public deny (mixed $roleName, mixed $resourceName, mixed $access, [mixed $func])
Запрещает доступ роли к ресурсу. Можно использовать «*» в качестве подстановки. Пример:
//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 resource
$acl->deny("*", "*", "browse");
public isAllowed (RoleInterface | RoleAware | string $roleName, ResourceInterface | ResourceAware | string $resourceName, mixed $access, [array $parameters])
Проверяет, разрешён ли доступ роли к действию над ресурсом
//Does andres have access to the customers resource to create?
$acl->isAllowed("andres", "Products", "create");
//Do guests have access to any resource to edit?
$acl->isAllowed("guests", "*", "edit");
public setNoArgumentsDefaultAction (mixed $defaultAccess)
Устанавливает уровень доступа по умолчанию (Phalcon\Acl::ALLOW или Phalcon\Acl::DENY) для действий без аргументов в методе isAllowed, если для ключа доступа существует функция
public getNoArgumentsDefaultAction ()
Возвращает уровень доступа по умолчанию ACL для действий без аргументов в методе isAllowed, если для ключа доступа существует функция
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
© 2011–2017 Phalcon Framework Team
Licensed under the Creative Commons Attribution License 3.0.
https://docs.phalconphp.com/en/latest/api/Phalcon_Acl_Adapter_Memory.html