создать класс правил в модуле dektrium rbac в базовом проекте yii2 - PullRequest
0 голосов
/ 06 октября 2019

Я установил модули dektrium \ user и dektrium \ rbac \ для управления пользователями и контролем доступа. Полностью установлены таблицы и файлы, и я вижу несколько вкладок в пути / user / admin (Users, Roles, Permissions, Rules, Create)для работы с модулями. Я могу отлично управлять пользователями (создать пользователя, сбросить пароль, отредактировать, ..). купить я не могу создать правило. Я создал класс в папке app \ rbac \ rules с именем AuthorRule:

<?php 
namespace app\rbac\rules;

use yii\rbac\Rule;
use app\models\News;

/**
 * Checks if authorID matches user passed via params
 */
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 with
     * @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['news']) ? $params['news']->createdBy == $user : false;
    }
}

(я создал класс новостей с моделью, контроллером, представлениями), но когда я ввел имя и правило класса в свои модули. Ни данные не зарегистрированы, ни сообщение об ошибке. Я не могу добавить остальные разделы, пока не войду в правило.

enter image description here

...