Как установить права доступа для mdmsoft/yii2-admin

Я создал разрешение для своей системы, и благодаря этому расширению другие работают нормально. В качестве примера я установил разрешение для модуля страницы, а затем использовал код ниже.

  if(\Yii::$app->user->can('page_module')){}else{
        throw new ForbiddenHttpException("You are not authorized to perform this action.", 403);
    } 

и это дает мне ограничение. Я использовал эти строки кода pf в контроллере расширений, затем он был ограничен, но уязвим, потому что, если я обновлю расширение, код будет удален. И я не понял, как я расширяю весь контроллер и устанавливаю разрешения. Если и есть другой способ, то он мне неизвестен.


person Destroyer.0211    schedule 19.10.2017    source источник
comment
для необходимых функций вы должны расширить класс модуля своим классом, а затем сослаться на свой класс.. поэтому, когда вы обновляете расширение, ваш код не затрагивается, и ваши функциональные возможности остаются в силе   -  person scaisEdge    schedule 19.10.2017


Ответы (1)


После того, как вы настроили расширение mdmsoft/yii2-admin, доступ ко всем маршрутам будет запрещен до тех пор, пока вы его не предоставите. Вместо жесткого кодирования yii::$app->user-can('permission') используйте RBAC, который должен быть единственной причиной, по которой вы установили mdmsoft/yii2-admin.

As Access Setup Надеюсь, вы используете расширенный шаблон Yii2. Первоначально настройте доступ as в вашем frontend/config/main.php :

'as access' => [
    //This access behavior must be in frontend and backend.
    //The 'as access' behavior will interfere with migrations if put in common.
    'class' => 'mdm\admin\components\AccessControl',
    'allowActions' => [
        'site/*',  //Allow by default to all.
        'debug/*',
        //'admin/*', //Leave commented out, unless setting up admin roles initially.
        //Allow guests to do:
        'ticket/ticket/index', 
    ]
],

Настройка RBAC

Перейдите по URL-адресу администратора, что-то вроде ... app:port/admin

Иерархия RBAC выглядит следующим образом:

Пользователь-›Роли-›Права-›Маршруты

Пример

-Джоуи

--Admin_Role

---- Admin_Permission

-------- приложение/контроллер1/*

-------- приложение/controller2/представление

Настройка RBAC

  1. Сначала добавьте свои маршруты.
  2. Добавьте свои разрешения.
  3. Назначьте маршруты своим разрешениям.
  4. Создайте свои роли.
  5. Назначьте разрешения своим ролям.
  6. Назначьте роли своим пользователям.
person Jairus Martin    schedule 19.10.2017