Права доступа opencart

Opencart - Понимание Пользовательских Прав Доступа

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

Я предполагаю, что вы используете последнюю версию OpenCart. Мы начнем с базового введения в ресурсы и разрешения.

Понимание ресурсов и разрешений
В любой системе контроля доступа (ACL) существуют два важных объекта — разрешения и ресурсы. Ресурсы подвергаются определенным разрешениям для группы пользователей, чтобы те могли выполнять различные действия над ресурсами. Конечно, каждая система имеет свой собственный способ организации ресурсов и разрешений.

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

Ресурсы
Вы будете удивлены, узнав, что все файлы контроллера со стороны администратора рассматриваются как ресурсы. Таким образом, ресурс “catalog/attribute” отображается в файле, расположенном по адресу admin/controller/catalog/attribute.php. Следовательно, всякий раз, когда вы назначаете конкретный ресурс какой-либо группе пользователей, они смогут выполнять все действия, определенные в соответствующем файле контроллера.

Перейдите к части back-end и выберите System > Users > User Groups. Отредактируйте одну из групп пользователей — например, отредактируем группу Administrator.

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

Итак, это базовое представление о ресурсах. Далее мы увидим, как ресурсы связаны с разрешениями.

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

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

Создание новой группы пользователей и назначение разрешений

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

Нажмите на +, чтобы добавить новую группу пользователей.

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

Тестирование группы Custom Group
Давайте быстро создадим нового пользователя из back-end и назначим новую созданную группу пользователей этому пользователю. Перейдите в System > Users > Users и щелкните +, чтобы создать нового пользователя.

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

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

Откройте upload/admin/controller/catalog/product.php файл.

Код:

if (!$this->user->hasPermission('modify', 'catalog/product')) {
$this->error['warning'] = $this->language->get('error_permission');
}

Есть несколько мест, где вы найдете приведенный выше фрагмент. В основном, он проверяет, разрешено ли зарегистрированному пользователю изменять разрешение на ресурс “catalog/product”.
Также он проверяет группу пользователей зарегистрированного пользователя даже если эта конкретная группа модифицирует разрешение на указанный ресурс.
Таким образом, вы можете проверить, разрешено ли пользователю выполнять какие-либо конкретные действия на определенных ресурсах. Идеальный сценарий состоял бы в том, чтобы настроить разные группы пользователей и назначить различный набор разрешений для каждой группы в соответствии с вашими требованиями.
Заключение
Сегодня мы обсудили ресурсы и разрешения в OpenCart. Мы начали с базового введения и увидели, как можно воспользоваться группами пользователей в сочетании с ресурсами и разрешениями.
Мы завершили статью с помощью фрагмента кода, демонстрирующего, как проверить, разрешен ли пользователю доступ / изменение определенного ресурса.