От автора: как администратор какой-либо системы, вы всегда хотели бы иметь возможность отдать некоторые функции группе доверенных пользователей, что позволит настроить рабочий процесс и бесшовно обслуживать сайт, избавившись от ненужного напряжения. Сегодня мы узнаем, какие ресурсы есть в OpenCart, а также как предоставить группе пользователей определенные разрешения на эти ресурсы. Мы рассмотрим работу этих функций со стороны back-end’а, а в последней части статьи узнаем про различные группы пользователей.
Предполагается, что вы работаете в последней версии OpenCart. А начнем мы с введения в ресурсы и разрешения.
Понятие ресурсов и разрешений
В любой системе Access Control List (ACL) есть две важных вещи – разрешения и ресурсы. Ресурсы связаны с определенными ресурсами группы пользователей, и пользователи могут выполнять различные действия с этими ресурсами. В каждой системе ресурсы и разрешения представлены по-своему.
В этом разделе мы рассмотрим данные понятия в контексте OpenCart.
Ресурсы
Вы будете удивлены, но под ресурсами в панели администратора понимаются все файлы контроллера. Ресурс «catalog/attribute» ссылается к файлу admin/controller/catalog/attribute.php. А следовательно, всякий раз во время привязки данного ресурса к любой группе пользователей, пользователи смогут выполнять все действия, описанные в соответствующем файле контроллера.
Зайдите в панель администратора в System > Users > User Groups. Давайте отредактируем группу Administrator, к примеру.
На рисунке видно, что все ресурсы расположены в выпадающем боксе. Если создать новый контроллер для пользовательского модуля, он будет добавлен в этот бокс и выделен галочкой. Это было введение в понятие ресурсов. В следующем разделе мы увидим, как ресурсы ассоциируются с разрешениями.
Разрешения
В OpenCart разрешения поделены на два основные категории – разрешения доступа (access) и разрешения модификации (modify). Пользователи, у которых есть только разрешения доступа, могут просматривать ресурсы, а пользователи с разрешением на модификацию могут добавлять/редактировать информацию в ресурсах.
Это было быстрое введение в понятия ресурсов и разрешений. В следующих разделах мы увидим, как они используются в паре с группами пользователей.
Создаем новую группу пользователей и назначаем ей разрешения
Вы уже знакомы с общими понятиями разрешений и ресурсов. Теперь мы создадим новую группу пользователей и продемонстрируем, как они работают вместе. Перейдите в панель администратора в System > Users > User Groups. Вы увидите список групп пользователей по умолчанию в OpenCart.
Для создания новой группы пользователей кликните на иконку +.
Введите название группы пользователей, выберите ресурсы для разрешений доступа и модификации. Как закончите, сохраните группу. Для примера я выбрал только ресурсы catalog/category для созданной мной группы Custom Group.
Тестируем группу пользователей Custom
Теперь через панель администратора создадим нового пользователя и добавим его в нашу новую группу. Перейдите в System > Users > Users и кликните на иконку + для создания нового пользователя.
Заполните необходимые поля – обратите внимание на поле User Group, там я выбрал Custom Group. Сохраните пользователя и зайдите из-под него в систему. Попробуйте зайти в секции, закрытые группе Custom Group. Вы получите ошибку доступа!
Как проверить доступные пользователю ресурсы доступа и модификации
В этом разделе вы узнаете, как проверить доступ или модификацию на определенный ресурс для пользователя. Код ниже вы встретите в большинстве файлов контроллеров панели администратора. Этот код проверяет подлинность пользователя перед тем, как разрешить ему доступ на какие-либо привилегированные действия.
Откройте файл upload/admin/controller/catalog/product.php.
1 2 3 |
if (!$this->user->hasPermission('modify', 'catalog/product')) { $this->error['warning'] = $this->language->get('error_permission'); } |
Код выше можно встретить в разных местах. Данный код проверяет, имеет ли авторизованный пользователь разрешения на модификацию ресурса «catalog/product».
А по сути, данный код проверяет группу авторизованных пользователей, и имеет ли эта группа разрешения на модификацию заданного ресурса.
Таким образом, с помощью данного кода можно проверять разрешения пользователя на выполнение любых действий с ресурсами. Идеальный сценарий это создать несколько групп пользователей и назначить им разные разрешения в зависимости от требований.
Заключение
Сегодня мы рассмотрели ресурсы и разрешения в OpenCart. Мы начали с основных понятий и в конце узнали, как по максимуму выжать потенциал из групп пользователей в комбинации с ресурсами и разрешениями.
Закончили статью мы кодом, с помощью которого можно проверить разрешения на доступ и модификацию определенных ресурсов для авторизованного пользователя.
На сегодня все. Не забывайте делиться своими мнениями и задавать вопросы в комментариях!
Автор: Sajal Soni
Источник: //code.tutsplus.com/
Редакция: Команда webformyself.