Open loveorigami opened 9 years ago
А вы создаете permission
или все же role
?
Покажите пожалуйста вот эту часть:
$root = $auth->getRole('root');
// some code............................
Вот так вот у меня
/**
* Add Articles RBAC.
*/
public function actionAdd()
{
$auth = Yii::$app->authManager;
$root = $auth->getRole('root');
$mainPermission = $auth->createPermission($this->mainPermission['name']);
if (isset($this->mainPermission['description'])) {
$mainPermission->description = $this->mainPermission['description'];
}
if (isset($this->mainPermission['rule'])) {
$mainPermission->ruleName = $this->mainPermission['rule'];
}
$auth->add($mainPermission);
foreach ($this->permissions as $name => $option) {
$permission = $auth->createPermission($name);
if (isset($option['description'])) {
$permission->description = $option['description'];
}
if (isset($option['rule'])) {
$permission->ruleName = $option['rule'];
}
$auth->add($permission);
$auth->addChild($mainPermission, $permission);
}
$auth->addChild($root, $mainPermission);
$updateArticles = $auth->getPermission('updateArticles');
$updateOwnArticles = $auth->getPermission('updateOwnArticles');
$deleteArticles = $auth->getPermission('deleteArticles');
$deleteOwnArticles = $auth->getPermission('deleteOwnArticles');
$auth->addChild($updateArticles, $updateOwnArticles);
$auth->addChild($deleteArticles, $deleteOwnArticles);
$admin = $auth->getRole('admin');
$auth->addChild($admin, $updateArticles);
$auth->addChild($admin, $deleteArticles);
return static::EXIT_CODE_NORMAL;
}
как и у Вас - https://github.com/vova07/yii2-start-comments-module/blob/master/commands/RbacController.php
в общем, получилось. должно быть так
foreach ($permissions as $name => $option) {
//echo $option;
$permission = $auth->getPermission($option); // вместо $name
$auth->remove($permission);
// var_dump($permission);
}
https://github.com/vova07/yii2-start-comments-module/blob/master/commands/RbacController.php#L126
но остались записи в rbac_auth_item_child. Наверное, вместо $auth->remove нужно использовать что-то другое?
Здравствуйте, Василий. Изучаю ваши модули. Возник вопрос по разрешениям.
по аналогии с Вашим классом в комментариях https://github.com/vova07/yii2-start-comments-module/blob/master/commands/RbacController.php
, написал
сама функция тут https://github.com/yiisoft/yii2/blob/master/framework/rbac/BaseManager.php#L129
вывел var_dump($permission); - - у меня показывает NULL
p.s. - вначале вопрос был по этому модулю, но в процессе я его решил, но заметил другую ошибку. Так что извините, что не там написал issue