在做Joomla 商城项目的时候,需要按照客户的要求实现不同级别的用户只能操作商品的不同部分,比如编辑组只能编辑文章和图片,而管理组可以设置价格和促销。整个系统采用ZMAXSHOP组件来搭建,一切都工作顺利,只是在后台设置权限的时候发生了错误。无论我怎么设置下级的权限,系统都提示【计算出的结果 不允许(锁定)】

1,问题描述

在设置产品权限的时候,无论我怎么设置下级的权限,系统都提示【计算出的结果 不允许(锁定)】Not Allowed (Locked) 

出错的截图如下:

2,问题分析

2.1 权限继承

客户的需求是高级管理组这个组可以修改价格。但是普通的管理组不允许修改价格。因此,我们的解决方案是新建了两个用户,一个是普通管理组,一个是高级管理组,高级管理组的父级组为普通管理组。然后在权限设置的时候,将普通用户组设置为禁止,将高级管理组设置为允许。按照我们的预计,这种设计应该可以解决客户的问题的。

但是,当实际操作的时候我们发现,无论怎么调整高级组的权限,最终计算的结果都是不允许。这个非常的奇怪,让人百思不得其解。

2.2 问题出在了什么地方

经过查看文档,我们知道Joomla的权限是可以继承的。但这个继承有一个问题,如果上一层级拒绝了某一个权限(设置为禁止),那么下一层级就自动的也禁止了。你没有办法去调整了,即使你指设置为允许,系统的权限计算结果最终也会是不允许。也就出现上面问题。

3,解决方案

基于权限继承的特性,那么我们应该如何来调整呢?首先我们应该将普通的管理组的权限设置为继承。(这样普通的用户组的计算权限的结果就会为禁止,这样达到了我们普通用户不允许编辑的目的)。对于高级用户,我们将其权限设置为允许,这样就上线了高级用户能够编辑,普通用户不能编辑的功能了。

 4,更多说明


以上仅经验之谈,如有不妥之处欢迎讨论

作者: 樱木花道

Joomla程序员,从J1.5到J4.x始终都在做Joomla相关开发定制工作,有超过10年行业经验,国内Joomla扩展开发商ZMAX团队的核心成员

作者网站:ZMAX程序人

评论 (0)

  • 最新在前
  • 最佳在前