Opencart Permission Denied - 无法添加权限

时间:2013-08-01 09:04:42

标签: php mysqli opencart

我正在扩展opencart,我正在构建一个自定义控制器,用于通过CSV上传产品的目录。我在尝试查看目录/上传You do not have permission to access this page, please refer to your system administrator.时收到此错误。

我想我需要更改db中的权限,并找到了这样做的功能

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

我把它放在一个模块中,该模块的唯一目的是在安装

时添加这些权限
<?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'));
            }
        }
    }
?>

我点击安装,我收到成功消息(但没有页面重定向),当我检查数据库时,权限没有被更改。

我发现这很难调试,因为通常调试时会使用echo等等,但显然你不能用这种大小的应用程序做这种事情(我通常只写小脚本),最好的方法是什么调试opencart,逐步完成它,也可以有人告诉我为什么我的权限没有被更改?

谢谢!

4 个答案:

答案 0 :(得分:2)

转到您的管理信息中心 - &gt; system - &gt;用户组

有两个选项,分别是访问权限和修改权限。

你必须在那里获得新的许可。

我希望这会对你有所帮助。

答案 1 :(得分:1)

以下是我在面对时解决这个问题的方法。 Opencart通过将php数组序列化到数据库来存储它的权限。编写一个小实用程序来获取该记录并对其进行反序列化,然后将其权限添加到该记录中,然后序列化并将其写回。

答案 2 :(得分:1)

要回答您可以使用的更简单的问题:

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

代替echo.它会将消息发送到管理面板的Opencart错误日志。

答案 3 :(得分:0)

您知道Opencart的函数“ addPermission”,它使用“用户组ID”设置参数,而不是您在上面设置的“用户ID”。所以:

您可以通过以下方式获取用户组ID:

$user_group_id = $this->user->getGroupId();

然后,您为此用户组的用户添加权限“访问/修改”。

$this->model_user_user_group->addPermission($user_group_id, 'access', 'catalog/upload');

$this->model_user_user_group->addPermission($user_group_id, 'modify', 'catalog/upload');