[英]Opencart Permission Denied - Cannot add permissions
我正在扩展opencart,并正在构建用于目录的自定义控制器,以便通过CSV上传产品。 尝试查看目录/上载时出现此错误。 You do not have permission to access this page, please refer to your system administrator.
。
我认为我需要更改数据库中的权限,并找到一个函数来执行此操作
$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的最佳方法是什么,逐步执行,还有谁能告诉我为什么我的权限没有被更改?
谢谢!
转到管理控制台->系统->用户组
有两个选项,分别是访问权限和修改权限。
您必须在那里访问您的新权限。
我希望这能帮到您。
这是我遇到问题时如何解决的。 Opencart通过将php数组序列化到数据库来存储它的权限。 编写一个小的实用程序来获取该记录并反序列化,然后为其添加权限,然后进行序列化并将其写回。
要回答更简单的问题,您可以使用:
$this->log->write('message');
代替echo.
它将消息发送到Opencart中管理面板的错误日志。
您知道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');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.