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. Отредактируйте своего администратора и выберите все, затем сохраните его. Проблема будет решена.

Другие вопросы по тегам