Opencart - Понятие Разрешений Пользователя

Тема в разделе "Общие вопросы", создана пользователем admin, 1 фев 2018.

  1. TopicStarter Overlay
    Offline

    admin Команда форума Администратор

    Сообщения:
    2.674
    Симпатии:
    122.115
    Репутация:
    215
    Как администратор какой-либо системы, вы всегда хотели бы иметь возможность отдать некоторые функции группе доверенных пользователей, что позволит настроить рабочий процесс и бесшовно обслуживать сайт, избавившись от ненужного напряжения. Сегодня мы узнаем, какие ресурсы есть в OpenCart, а также как предоставить группе пользователей определенные разрешения на эти ресурсы. Мы рассмотрим работу этих функций со стороны back-end’а, а в последней части статьи узнаем про различные группы пользователей.

    Предполагается, что вы работаете в последней версии OpenCart. А начнем мы с введения в ресурсы и разрешения.

    Понятие ресурсов и разрешений
    В любой системе Access Control List (ACL) есть две важных вещи – разрешения и ресурсы. Ресурсы связаны с определенными ресурсами группы пользователей, и пользователи могут выполнять различные действия с этими ресурсами. В каждой системе ресурсы и разрешения представлены по-своему.

    В этом разделе мы рассмотрим данные понятия в контексте OpenCart.

    Ресурсы
    Вы будете удивлены, но под ресурсами в панели администратора понимаются все файлы контроллера. Ресурс «catalog/attribute» ссылается к файлу admin/controller/catalog/attribute.php. А следовательно, всякий раз во время привязки данного ресурса к любой группе пользователей, пользователи смогут выполнять все действия, описанные в соответствующем файле контроллера.

    Зайдите в панель администратора в System > Users > User Groups. Давайте отредактируем группу Administrator, к примеру.

    1.png

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

    Разрешения
    В OpenCart разрешения поделены на два основные категории – разрешения доступа (access) и разрешения модификации (modify). Пользователи, у которых есть только разрешения доступа, могут просматривать ресурсы, а пользователи с разрешением на модификацию могут добавлять/редактировать информацию в ресурсах.

    2.png

    Это было быстрое введение в понятия ресурсов и разрешений. В следующих разделах мы увидим, как они используются в паре с группами пользователей.

    Создаем новую группу пользователей и назначаем ей разрешения
    Вы уже знакомы с общими понятиями разрешений и ресурсов. Теперь мы создадим новую группу пользователей и продемонстрируем, как они работают вместе. Перейдите в панель администратора в System > Users > User Groups. Вы увидите список групп пользователей по умолчанию в OpenCart.

    3.png

    Для создания новой группы пользователей кликните на иконку +.

    4.png

    Введите название группы пользователей, выберите ресурсы для разрешений доступа и модификации. Как закончите, сохраните группу. Для примера я выбрал только ресурсы catalog/category для созданной мной группы Custom Group.

    Тестируем группу пользователей Custom
    Теперь через панель администратора создадим нового пользователя и добавим его в нашу новую группу. Перейдите в System > Users > Users и кликните на иконку + для создания нового пользователя.

    5.png

    Заполните необходимые поля – обратите внимание на поле User Group, там я выбрал Custom Group. Сохраните пользователя и зайдите из-под него в систему. Попробуйте зайти в секции, закрытые группе Custom Group. Вы получите ошибку доступа!

    6.png

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

    Откройте файл upload/admin/controller/catalog/product.php.
    Код:
    if (!$this->user->hasPermission('modify', 'catalog/product')) {
    $this->error['warning'] = $this->language->get('error_permission');
    }
    Код выше можно встретить в разных местах. Данный код проверяет, имеет ли авторизованный пользователь разрешения на модификацию ресурса «catalog/product».

    А по сути, данный код проверяет группу авторизованных пользователей, и имеет ли эта группа разрешения на модификацию заданного ресурса.

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

    Заключение
    Сегодня мы рассмотрели ресурсы и разрешения в OpenCart. Мы начали с основных понятий и в конце узнали, как по максимуму выжать потенциал из групп пользователей в комбинации с ресурсами и разрешениями.

    Закончили статью мы кодом, с помощью которого можно проверить разрешения на доступ и модификацию определенных ресурсов для авторизованного пользователя.

    На сегодня все. Не забывайте делиться своими мнениями и задавать вопросы в комментариях!