2013-08-01 2 views
0

Я расширяю opencart, и я создаю пользовательский контроллер для каталога для загрузки продуктов через CSV. Я получаю эту ошибку, когда пытаюсь просмотреть каталог/выгрузить You do not have permission to access this page, please refer to your system administrator..Opencart Разрешение Отклонено - Не удается добавить разрешения

Я полагал, что нужно изменить права доступа в БД, и нашел функцию, чтобы сделать так

$this->model_user_user_group->addPermission($this->user->getId(), 'access', 'catalog/upload'); $this->model_user_user_group->addPermission($this->user->getId(), 'modify', 'catalog/upload');

я положил это в модуль построен с единственной целью addiing эти разрешения, когда это устанавливает

<?php 
    class ControllerModuleInstl extends Controller { 
     public function install() { 
      $this->load->model('user/user_group'); 
      $this->model_user_user_group->addPermission($this->user->getId(), 'access', 'catalog/upload'); 
      $this->model_user_user_group->addPermission($this->user->getId(), 'modify', 'catalog/upload'); 

      if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { 
       $this->model_setting_setting->editSetting('instl', $this->request->post);  

       $this->session->data['success'] = $this->language->get('text_success'); 

       $this->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL')); 
      } 
     } 
    } 
?> 

я нажимаю установить, я получаю сообщение об успехе (нет страницы переадресации, однако), когда я проверяю DB разрешения не были изменены.

Мне сложно отлаживать его, потому что, когда обычно отладка Ill использует эхо и т. Д., Но, очевидно, вы не можете делать такие вещи с применением такого размера (обычно я просто пишу небольшие скрипты), что лучше способ отладки opencart, шаг через него, а также может кто-нибудь сказать мне, почему мои разрешения не меняются?

Спасибо!

ответ

1

Чтобы ответить на простой вопрос, который вы можете использовать:

$this->log->write('message'); 

вместо echo. Он будет посылать сообщение в журнал ошибок админки в OpenCart.

+0

Прекрасная благодарность Натан. – Melbourne2991

1

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

+1

Ну, это именно то, что должно делать функция ('$ this-> model_user_user_group-> addPermission ($ this-> user-> getId(), 'access', 'catalog/upload');'). hm guess Я мог бы написать код, открытый для opencart, чтобы сделать это. – Melbourne2991

2

Перейти к вашей админ панели -> Система -> группы пользователей

Есть два варианта, которые являются правами доступа и изменения прав доступа.

Вы должны получить доступ к своему новому разрешению.

Надеюсь, это поможет вам.

+0

Моя проблема заключается в том, что разрешений нет, потому что это пользовательское разрешение – Melbourne2991

+0

Ничего себе извинения, он действительно был там, поэтому функция действительно работала, я просто не смотрел правильно! – Melbourne2991

Смежные вопросы