Від автора: як адміністратор якої-небудь системи, напевно вам завжди хотілося мати функцію, яка дозволить делегувати певні обов’язки групі довірених користувачів, і яка дозволить налаштувати робочі процеси, що допомагають підтримувати сайт і уникнути непотрібного стресу. Сьогодні ми побачимо, які ресурси доступні в OpenCart, і як можна надати в OpenCart права доступу до певних ресурсів для групи користувачів. Ми розглянемо ці функції, а користувальницькі групи стануть темою нашого обговорення в пізнішій частині цієї статті.
Я припускаю, що ви використовуєте останню версію OpenCart. Ми почнемо з базового введення в ресурси і дозволу.
Розуміння ресурсів і дозволів
У будь-якій системі контролю доступу (ACL) існують два важливих об’єкта — дозволу і ресурси. Ресурси піддаються певним дозволів для груп користувачів, щоб ті могли виконувати різні дії над ресурсами. Звичайно, кожна система має свій власний спосіб організації ресурсів і дозволів.
У цьому розділі ми розглянемо це в контексті OpenCart.
Ресурси
Ви будете здивовані, дізнавшись, що всі файли контролера з боку адміністратора розглядаються як ресурси. Таким чином, ресурс «catalog/attribute» відображається у файлі, розташованому за адресою admin/controller/catalog/attribute.php. Отже, всякий раз, коли ви призначаєте конкретний ресурс якої-небудь групи користувачів, вони зможуть виконувати всі дії, визначені у відповідному файлі контролера.
Інтернет-магазин на OpenCart!
Створити інтернет-магазин на самій популярної CMS OpenCart з нуля!
Приступити до створення
Перейдіть до частини back-end і виберіть System > Users > User Groups. Відредагуйте одну з груп користувачів — наприклад, відредагуємо групу Administrator.
Тепер, як ви можете бачити, всі ресурси перераховані в розкривному списку. Природно, якщо ви створите новий файл контролера для свого настроюваного модуля, він також буде видно.
Отже, це базове уявлення про ресурси. Далі ми побачимо, як ресурси пов’язані з дозволами.
Права доступу
В OpenCart дозволу діляться на дві основні категорії — доступ і зміна. Користувачі з правами доступу зможуть переглядати ресурси тільки в тому випадку, якщо дозвіл на зміну дозволяє користувачам додавати / редагувати інформацію про ресурсах.
Це було коротке введення в ресурси і дозволу. У наступних розділах ми побачимо, як їх слід використовувати у поєднанні з групами користувачів.
Створення нової групи користувачів і призначення дозволів
Оскільки тепер ви знайомі з дозволами і ресурсами, ми продовжимо роботу і створимо нову групу користувачів, щоб продемонструвати, як все це працює. Перейдіть до частини back-end і виберіть System > Users > User Groups. У ньому будуть перераховані групи користувачів за умовчанням, доступні в OpenCart.
Натисніть на +, щоб додати нову групу користувачів.
Інтернет-магазин на OpenCart!
Створити інтернет-магазин на самій популярної CMS 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(‘змінити’, ‘catalog/product’)) {
$this->error[‘warning’] = $this->language->get(‘error_permission’);
}
Є декілька місць, де ви знайдете наведений вище фрагмент. В основному, він перевіряє, чи дозволено зареєстрованому користувачеві змінювати дозвіл на ресурс «catalog/product».
Також він перевіряє групу користувачів зареєстрованого користувача, навіть якщо ця конкретна група модифікує дозвіл на зазначений ресурс.
Таким чином, ви можете перевірити, чи дозволяє користувачеві виконувати які-небудь конкретні дії на певних ресурсах. Ідеальний сценарій полягав би в тому, щоб налаштувати різні групи користувачів і призначити різний набір дозволів для кожної групи у відповідності з вашими вимогами.
Висновок
Сьогодні ми обговорили ресурси і дозволу в OpenCart. Ми почали з базового введення і побачили, як можна скористатися групами користувачів у поєднанні з ресурсами та дозволами.
Ми завершили статтю з допомогою фрагмента коду, що демонструє, як перевірити, чи дозволений користувачеві доступ / зміна певного ресурсу.
Як завжди, якщо ви шукаєте додаткові інструменти, утиліти, розширення і т. д. для OpenCart, які ви можете використовувати в своїх проектах або для власної освіти, не забудьте подивитися, що є в нашому маркеті.
Інтернет-магазин на OpenCart!
Створити інтернет-магазин на самій популярної CMS OpenCart з нуля!
Приступити до створення