Статьи

Понимать права пользователей в OpenCart

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

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

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

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

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

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

Перейдите на сервер и перейдите в Система> Пользователи> Группы пользователей . Отредактируйте одну из групп пользователей — например, давайте отредактируем группу администраторов .

Ресурсы

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

Так что это основное введение в ресурсы. В следующем разделе мы увидим, как ресурсы связаны с разрешениями.

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

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

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

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

Группы пользователей

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

Добавить пользовательскую группу пользователей

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

Теперь давайте быстро создадим нового пользователя из серверной части и назначим нашу вновь созданную группу пользователей этому пользователю. Перейдите в Система> Пользователи> Пользователи и нажмите значок +, чтобы создать нового пользователя.

Добавить нового пользователя

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

В доступе отказано

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

Идите вперед и откройте файл upload/admin/controller/catalog/product.php .

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

Есть несколько мест, где вы найдете приведенный выше фрагмент. По сути, он проверяет, есть ли у вошедшего в систему пользователя разрешение на изменение ресурса «каталог / продукт».

Внутренне, он проверит группу пользователей вошедшего в систему пользователя, и далее, если эта конкретная группа имеет разрешение на изменение указанного ресурса.

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

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

Мы завершили статью фрагментом кода, демонстрирующим, как проверить, разрешен ли пользователю доступ / изменение определенного ресурса.

Как всегда, если вы ищете дополнительные инструменты OpenCart, утилиты, расширения и т. Д., Которые вы можете использовать в своих собственных проектах или для собственного образования, не забудьте посмотреть, что у нас есть на рынке .

Вот и все на сегодня, и не забудьте поделиться своими отзывами и запросами, используя ленту комментариев ниже!