Не применяется роль author

Всё про контроль доступа пользователей: фильтры, RBAC, проверки
Ответить
docmaster
Сообщения: 15
Зарегистрирован: 2017.01.06, 17:41
Контактная информация:

Не применяется роль author

Сообщение docmaster » 2017.07.04, 10:54

для роли author не срабатывает правило:
<?php
namespace app\modules\rules;

use yii\rbac\Rule;

/**
* Проверяем authorID на соответствие с пользователем, переданным через параметры
*/
class AuthorRule extends Rule
{
public $name = 'isAuthor';

/**
* @param string|int $user the user ID.
* @param Item $item the role or permission that this rule is associated width.
* @param array $params parameters passed to ManagerInterface::checkAccess().
* @return bool a value indicating whether the rule permits the role or permission it is associated with.
*/

public function execute($userId, $item, $params)
{
return isset($params['model']) ? $params['model']->user_id == $userId : false;
}
}
А если пользователя назначить админом, то у него права становятся как у автора при проверке:
<?php if (Yii::$app->user->can(('updateOwnPost'), ['model' => $model])): ?>
Подскажите пожалуйста в чем причина. Вот БД:
таблица auth_item:
admin 1
author 1
createPost 2 Create a post
updateOwnPost 2 Update own post
updatePost 2 Update post
таблица auth_item_child:
admin author
author createPost
author updateOwnPost
admin updatePost
updateOwnPost updatePost
таблица auth_assignment:
admin 1 1499152774
author 3 1499154287
При назначении пользователя с id 3 admin правило срабатывает

Nex-Otaku
Сообщения: 825
Зарегистрирован: 2016.07.09, 21:07

Re: Не применяется роль author

Сообщение Nex-Otaku » 2017.07.07, 14:13

auth_item
updateOwnPost 2 Update own post
здесь прописать в колонке "rule_name" правило "isAuthor".

Ответить