yii2 RBAC Manager + MongoD. Логика работы, объяснение
Primary tabs
Общая сведения
Документация по методам аутентификации в yii2 доступна здесь, в частности RBAC.
Общая схема работы RBAC
- Пользователям даются и роли и разрешения
- Каждой роли можно сопоставить несколько разрешений
- А к разрению (permission) и к роли можно прикрепить правило (для более детальной проверки, например в правиле можно смотреть является ли пользователь создателем сущности)
Конкретные модули
Устанавливаем mdmsoft/yii2-admin и yiisoft/yii2-mongodb:
composer require mdmsoft/yii2-admin "~2.0"
composer require --prefer-dist yiisoft/yii2-mongodb
Настройка описана здесь:
https://github.com/mdmsoft/yii2-admin/blob/master/docs/guide/configuration.md
В файле config/web.php указываем
...
'components' => [
...
'authManager' => [
'class' => 'yii\mongodb\rbac\MongoDbManager',
],
]
О том, как создавать роли, разрешения, правила и назначения, читайте здесь
http://www.yiiframework.com/doc-2.0/guide-security-authorization.html.
Чтобы создать rule, создаём класс нашего rule в пространстве имён app\rbac\rules,
а сам php файл этого rule помещаем в директорию app/rbac/rules:
<?php
namespace app\rbac\rules;
use yii\rbac\Rule;
use yii\rbac\Item;
class NotOnlyRule extends Rule
{
public $name = 'NotOnlyRule';
/**
* @param string|integer $user the user ID.
* @param Item $item the role or permission that this rule is associated with
* @param array $params parameters passed to ManagerInterface::checkAccess().
*
* @return boolean a value indicating whether the rule permits the role or permission it is associated with.
*/
public function execute($user, $item, $params)
{
// ......
return $result;
}
}При создании правила требуется использовать полный путь в пространстве имён.
Логика связи пользователя и правила (user - permission -- rule)
Чтобы правило работало, к пользователю прикрепить разрешение (permission), а уже к разрешению прикрепить правило.
- Log in to post comments
- 5379 reads
vedro-compota
Tue, 04/18/2017 - 17:30
Permalink
просьба дополнить миграциями.
просьба дополнить миграциями...если они нужны.
_____________
матфак вгу и остальная классика =)