Yii::$app->user->can - проверяте ROLE, RULES
То что добавили вы в БД и не должно работать. Потому что сделанное вами разрешение нужно привязать к правилу.
Вы добавили запись в БД вручную, а за работу данного разрешения отвечают 2 записи в 2х таблицах.
Если вы хотите добавить правило которое скажем будет при редактировании страница сайта проверять :
1. Есть ли у пользователя права редактировать страницу? ПРАВИЛЬ
2. Если пользователь не админ, то его ли это страница? РАЗРЕШЕНИЕ
То смотрите ниже.
Код: Выделить всё
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($user, $item, $params)
{
return isset($params['post']) ? $params['post']->createdBy == $user : false;
}
}
/**/
$auth = Yii::$app->authManager;
// add the rule
$rule = new \app\rbac\AuthorRule;
$auth->add($rule);
// добавляем разрешение "updatePost"
$updatePost = $auth->createPermission('updatePost');
$updatePost->description = 'Update post';
$auth->add($updatePost);
// добавляем разрешение "updateOwnPost" и привязываем к нему правило.
$updateOwnPost = $auth->createPermission('updateOwnPost');
$updateOwnPost->description = 'Update own post';
$updateOwnPost->ruleName = $rule->name;
$auth->add($updateOwnPost);
// "updateOwnPost" будет использоваться из "updatePost"
$auth->addChild($updateOwnPost, $updatePost);
// разрешаем "автору" обновлять его посты
$auth->addChild($author, $updateOwnPost);
Практически ваш случай: https://yiiframework.com.ua/ru/doc/guid ... orization/