Права доступа в аминку приложения Есть решение

В бэкенде приложения есть своя админка. Зайти в нее можно по ссылке. Как сделать так чтобы ссылка была доступна только для отдельных пользователей? Читал доку про waRigtsConfig https://developers.webasyst.ru... так и не понял, как задать права для конкретного пользователя. 

Есть метод getRight, а где для этого юзера задаются данные права?

8 ответов

  • 1
    Rat Партнер-разработчик 4 февраля 2020 06:53 #

    Права пользователей задают в приложении «Команда».

    • +1
      Yaroslav Egorov Yaroslav Egorov 5 февраля 2020 21:29 #

      Это права на приложения webasyst. Я о раздаче прав внутри своего приложения webasyst

  • 1

    Не знаю по теме будет ил нет...

    Но может вам поможет https://www.webasyst.ru/store/...

  • 1

    В файле plugin.php добавить:

    'handlers' => 
      array (
        'rights.config' => 'rightsConfig',   
      ),

    В файле shopYOURPLUGINID.plugin.php сделать метод примерно такой:

    /**
         * Настройка прав плагина
         * @param waRightConfig $config
         */
        public function rightsConfig(waRightConfig $config){
            $config->addItem('YOUR_PLUGIN_ID', 'Доступ к плагину НАЗВАНИЕ_ПЛАГИНА');        
        }

    В конкретном action плагина, отвечающем за функционал в методе execute или в любом другом месте кода проверка на права доступа будет примерно такой:

    if(!wa()->getUser()->getRights('shop', 'YOUR_PLUGIN_ID')){
        throw new waAPIException('access_denied', 403);
    }

    Изменять доступ к плагину можно будет через стандартный функционал определения доступа по каждому пользователю Webasyst

  • 1

    Для приложения логика в принципе, примерно та же. Только права нужно делать для каждого модуля приложения отдельно и в самом Action модуля проверять выставленные у пользователя права. Переход по ссылке в приложении - это и есть обращение к какому-то action или controller.

    Вообще, тут достаточно посмотреть, как реализованы права в других стандартных приложениях Webasyst. Например, в том же shop-script. Начать можно с этого файла:

    /wa-apps/shop/lib/config/shopRightConfig.class.php

    Только это касается бэкенда и настроек прав доступа через приложение "Команда" для других установленных приложений (хоть своих, хоть скачанных с магазина Webasyst). Если нужно как-либо менять права доступа во фронтенде (например, в личном кабинете пользователя), то здесь уже нужно делать свою логику на базе приложения...

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите