Opencart "У вас нет прав доступа к этой странице, обратитесь к системному администратору"
Каждый раз, когда я устанавливал новое расширение, я получал эту ошибку:
ошибка: у вас нет прав доступа к этой странице, обратитесь к системному администратору.
Я уже перешел в "Система"> "Группа пользователей" и "Добавить разрешение для новых модулей расширения" ("Разрешение доступа" и "Изменение разрешения"), но не повезло.
Я попытался установить "2checkout", "Ajax Quick CheckOut" "и получить ту же ошибку.
3 ответа
Скорее всего, вы пытаетесь установить расширение, несовместимое с OpenCart 2.3.0.2. В OpenCart 2.3.X были внесены некоторые изменения, связанные со структурой расширений, поэтому вам придется сначала внести эти изменения.
Изменение пути:
Все типы расширений теперь перемещены в новый каталог с именем extension
,
Например, если у вас есть расширение платежа, то его старая структура выглядела так:
admin/controller/payment/xxx.php
admin/model/payment/xxx.php
admin/language/en-gb/payment/xxx.php
admin/view/template/payment/xxx.php
Теперь вы должны изменить его на:
admin/controller/extension/payment/xxx.php
admin/model/extension/payment/xxx.php
admin/language/en-gb/extension/payment/xxx.php
admin/view/template/extension/payment/xxx.php
Путь загрузки модуля и изменения URL:
И при загрузке модуля вы должны включить extension
в пути. т.е. $this->load->model('module/:')
сейчас становится$this->load->model('extension/module/mymod')
,
Это верно и для URL-адресов администраторов. $this->url->link('payment/mymod', 'token=' . $this->session->data['token'], 'SSL')
сейчас становится $this->url->link('extension/payment/mymod', 'token=' . $this->session->data['token'], 'SSL')
,
Изменения имени класса:
Следующее изменение связано с именами классов. Класс с именем ControllerModuleMyMod
следует переименовать в ControllerExtensionModuleMyMod
,
Эти изменения применимы как к admin
а также catalog
,
Связанные темы:
Может потребоваться изменить процедуру validate() контроллера администратора в модуле:
if (!$this->user->hasPermission('modify', 'module/oldmodule')) {
}
чтобы:
if (!$this->user->hasPermission('modify', 'extension/module/oldmodule')) {
}
Перейдите к admin - system - users - user groups. Отредактируйте своего администратора и выберите все, затем сохраните его. Проблема будет решена.