Joomla如何通过权限控制后台功能项 原
之前一直讨论如何通过ACL(Joomla权限机制)来控制前台的菜单和功能模块,本篇文章就来讨论一下如何通过ACL来控制后台的功能模块。
什么是ACL?
Joomla权限控制,业内一般称作ACL,你使用google检索相关权限控制资料的时候,搜索关键词joomla ACL就会获得你需要的内容了。 ACL是Access Control List的简写。中文意思就是访问控制列表。
ACL是干什么用的?
简单来说就是控制哪一些用户能够访问网站的哪一些内容。下面是一些常用的场景:
- 未登录用户只能看A分类中的文章,登录之后他可以同时看到A分类和B分类中的文章。
- A管理员只能修改和编辑A分类中的文章,B管理员只能在B分类中的文章。
- 限制普通用户不能看到某一个导航菜单。
- 管理员A只能看到文字组件
- 管理员B只能看到菜单组件
总得来说就是控制访问权限
Joomla中的ACL?
joomla中将ACL分类两种控制,一种是控制你能看到什么,另外一种是你能执行什么操作。请注意这两种是有本质的出别,只有在理解清楚了这两点之后,你才能明白joomla后台有关权限控制意思。
你能看到什么
比如说,你想让未登录的用户不能访问B分类中的文章,那么这个就属于你能看到什么
你能执行什么操作
比如说,你想让A用户只能管理(编辑,修改,但不能删除)A分类中的文章,那么这个就属于你能做什么了
Joomla中设置ACL的地方
joomla设置ACL的地方就是权限。最重要和最常见的一个ACL的地方是全局设置。登录后台->系统->全局设置->权限。如图:
Joomla3的截图如下:
Joomla4的截图如下:
每一个组件都由自己的权限设置,你可以通过切换左边不同的组件来对该组件的权限进行设置。
使用案例
下面用一个具体的例子来说明如何使用ACL控制后台的权限,我们的目标是实现A用户组登录后台后能看到文章管理,B用户组的用户登录后台后不能看到文章管理。
1,首先创建两个用户组,分别是用户组A,用户组B
2,然后在用户组A分别创建用户testa,用户组B中分别创建testb.创建完成后用户截图如下:
3,为了确保新创建的用户有登录后台的权限,我们还需要进行一下设置,在全局设置中分别给用户组A和用户组B登录后台的权限。如图:
我们可以在用户管理界面,通过点击查询权限,来确保我们的操作是成功的。如图:
截图如下:
4,使用刚刚创建的账号登录后台,截图如下:
能够登录后,但是后台的是空的。
5,按照实际需要分配权限。比如现在我想让testa用户管理文章组件,那么就在在全局的权限设置找文章组件,然后点击用户组,按照需要给出权限,如图:
这样就完成了用户的后台授权了。
现在testa用户重新登录,就可以看到文字管理了。如图:
做到这里基本就完成了我们的授权了,但是大家可以明显的感觉到后台缺少了一些模块,使得整个的后台看起来很不完整,这是因为Joomla后台的模块也是有权限的,我们刚刚新建的用户组A,用户组B没有被授权。
分配后台模块
如何解决这个问题呢?
从本质上将joomla后台和前台是一样的,控制后台的模块的可见性和前台是一样的。我们可以先使用管理员的账号,在模块管理中,查看后台的模块,找到他们的权限,如图:
下一步就是将用户组A赋予管理员的权限。如图:
至此,我们的配置就完成了,再次的登录testa账号,查看效果如下: