教程栏目

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账号,查看效果如下:

作者: 樱木花道

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

作者网站:ZMAX程序人

评论 (0)

  • 最新在前
  • 最佳在前

第8章 Gantry 框架