OpenCart4模块新增页面遇权限拒绝问题,求排查方案
OpenCart 4 扩展新增页面权限拒绝问题排查
- 注册权限到用户组表:OpenCart 4的后台权限不是只在用户组界面设置就行,得在扩展的
install.php安装脚本里,把新增页面的路由权限写入user_group表。比如你的控制器路由是extension/module/testimonials/showTestPage,就加这段代码:
$this->db->query("INSERT INTO " . DB_PREFIX . "user_group SET permission = CONCAT(permission, '\"extension/module/testimonials/showTestPage\",') WHERE user_group_id IN ('1', '2')");
执行安装脚本后,用户组的权限列表里才会出现这个选项,之前手动设置可能没生效就是因为没走这一步。
- 控制器内添加权限验证:在
showTestPage()方法的最开头,必须加权限校验代码,拦截无权限访问:
if (!$this->user->hasPermission('access', 'extension/module/testimonials/showTestPage')) { $this->response->redirect($this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true)); }
没加这段的话,哪怕用户组权限开了,系统也会判定无权限。
核对路由路径一致性:确认访问的URL路由和控制器注册的路径完全匹配,比如后台正确URL应该是
index.php?route=extension/module/testimonials/showTestPage&user_token=xxx,路由写错的话,系统找不到对应的权限项,直接返回拒绝。清除系统缓存:修改权限或安装脚本后,去后台「系统->维护->缓存管理」清除所有缓存,OpenCart会缓存权限配置,不清除的话新设置不会生效。
内容的提问来源于stack exchange,提问作者ramesh
相关产品推荐
相关产品推荐

