阅读时间 12 分钟 (2339 字)

Joomla 1.6, 1.7, 和 2.5:访问控制列表(ACL)概念概述

Joomla 1.6, 1.7, and 2.5: ACL Concepts Overview

Joomla 1.6 及更高版本中最强大的新功能之一是访问控制列表(ACL)。ACL 代表 访问控制列表。它指的是谁有权在网站上做什么,包括读取、创建、编辑、删除或登录等权限。

感谢 Katerina Vorobyova 将本文翻译成 俄语

感谢 Lo Jen-Chih 将本文翻译成 繁体中文

感谢 Helvecio 将本文翻译成 巴西葡萄牙语

本文基于 两篇文章,这些文章最初是为 Joomla 1.6 编写的。本文于 2011 年 12 月编写,在 Joomla 2.5 发布之前。然而,它假设 ACL 概念在 Joomla 版本之间不会改变,即使界面发生了轻微的变化。

Joomla 1.6 及更高版本中最强大的新功能之一是访问控制列表(ACL)。

ACL 代表 访问控制列表。它指的是谁有权在网站上做什么,包括读取、创建、编辑、删除或登录等权限。

许多人认为 ACL 仅与网站的首页有关。例如,当我登录到网站时,我可以看到哪些文章?如果其他人登录到网站,他们会看到相同的文章,还是会看到不同的文章?

然而,访问控制列表(ACL)也涉及谁有权限创建、编辑和删除内容;谁可以发布和取消发布内容;谁可以登录网站的前端或后端;以及谁可以更改哪些组件、模块和模板。

你能够做并不意味着你应该做! ACL非常复杂,理解其具体工作原理需要一些时间。对于许多网站,也许甚至大多数网站,你可能不需要超出默认的Joomla配置。然而,如果你正在构建一个大型网站,它可能很有用。

ACL需要的地方包括

  • 一个学校网站,父母、教师、学生和公众可以看到不同类型的内容
  • 一个大型网站,有许多贡献者,你不希望人们更改彼此的内容,并且信任无法或不会工作
  • 你有用户可以创建和编辑网站内容,但他们不一定能够发布内容。更重要的是,你有两个或更多组这类用户,他们需要创建和编辑属于网站不同区域的内容。
  • 你希望用户能够登录网站的后端,访问单个组件的控制,而不触及其他任何东西。

ACL还可以用来构建简化的管理员界面,消除客户不需要访问来更改网站的区域。在Joomla 1.5中,你可以让客户成为管理员,但他们将能够编辑任何组件,网站上任何内容,并更改菜单。在Joomla 1.6及以上版本中,你可以细化ACL,使得客户只能访问特定类别的文章(或特定文章)、特定组件(或根本不访问),等等。通过ACL,你可以提高客户的后端管理员可用性。

Joomla 1.5中的ACL

Joomla 1.5有一个有限的和固定的ACL系统。如果你使用过Joomla 1.5,你已经看到你可以设置菜单项或文章让公众、注册用户或“特殊”用户(作者及以上)查看。同样,你可能知道注册用户无法登录Joomla网站的后端,但超级管理员可以。 Joomla 1.5的ACL是分层的,这意味着每个用户组从其下方的组继承权限。

关于Joomla 1.5的 的完整解释可以在 brian.teeman.net 找到。组包括公众、注册、作者、编辑、发布者、管理员、超级管理员。

Joomla 1.5的 访问级别 包括公众、注册和特殊。公众表示任何人都可以看到内容。注册表示拥有注册用户访问权限及以上的人可以看到内容。特殊仅适用于作者组及以上。无法添加额外的访问级别,也无法更精细地细分受众。

Joomla 1.6及以上版本中的ACL:概述

Joomla 1.6+的ACL不一定是分层的。你可以设置具有任何你想要的权限的组。这些权限在组的情况下从父级继承,但在访问级别的情况下不继承。至少,所有用户组都是公众组的子组。

Joomla 1.6+的ACL系统有四个方面。这包括用户、组、核心权限和访问级别。我在以下图表中展示了这些方面,并将详细介绍每个方面。

Diagram of how ACL works

用户

这是最容易理解的一个——那就是你,或者访问网站的另一个人。用户不需要有账户就可以被认为是网站的访问者。那个人仍然被视为公众用户。单个用户可以分配到一个或多个组中。你不能直接将核心权限分配给用户;这些权限分配给组。

核心权限

核心权限是分配给组,而不是分配给单个用户。(如果您想为单个用户分配特定的核心权限,则需要为此单个用户创建一个组。)

核心权限包括

  • 网站登录:登录到网站前端的权限。
  • 管理员登录:登录到网站后端的权限。
  • 离线访问:当网站离线(在全局配置 - 网站选项卡中)时,这控制谁可以登录查看网站
  • 超级管理员:管理(root)权限,例如更改全局配置。超级管理权限还会覆盖任何其他ACL设置,为该用户组提供对Joomla所有系统的完全访问权限。
  • 访问组件:能够访问后端特定区域(例如菜单、文章管理器、媒体管理器、组件等)的能力
  • 创建:创建新内容的权限
  • 删除:删除(移动到回收站)内容的权限
  • 编辑:编辑现有内容的权限,这些内容不一定是您自己的
  • 编辑状态:在已发布、未发布、已移动到回收站、存档之间更改状态的能力
  • 编辑自己的内容:编辑您自己的内容(但不能编辑他人的内容)的能力

核心权限在全局配置中设置,在网站 - 全局配置下,然后点击权限选项卡。

全局配置中核心权限的理解

globalconfig

在上面的管理器组中,以及除公共组之外的所有其他组,这里显示的每个下拉菜单都有三个选项:允许、拒绝和继承。公共组是所有下属组的父组。公共组下拉菜单有三个值,包括允许、拒绝和未设置。

  • 允许表示为特定组明确允许或允许某些内容。
  • 拒绝表示为特定组明确拒绝或不允许某些内容。
  • 继承表示从父组继承某些内容。继承不是公共组的选项。
  • 未设置表示权限尚未配置。未设置仅适用于公共组,且仅在全局配置中。

每个用户组权限的详细说明如下。

关于全局配置中分配的核心权限的特殊说明

当核心权限在全局配置级别设置时,它们将贯穿整个网站和网站的各个区域。例如,作者拥有全局分配的创建权限。该作者可以在网站上的任何类别中创建文章。创建权限还意味着他们可以从网站前端创建新的链接,如果使用了链接组件。您可能需要仔细考虑在Joomla中设置权限的位置。如果您希望用户组能够创建文章和类别,则无需在全局配置中设置创建权限。您也可以在文章管理器的选项中分配此权限。我将在后续文章中更深入地讨论权限的分配位置。

关于拒绝的详细说明

您可能会想将这些下拉菜单都设置为允许或拒绝,以便更容易阅读。

然而,我强烈建议您不要这样做。

如果权限中设置了拒绝,即使您为高级用户组设置了允许,较低级别的拒绝也会被继承并覆盖允许。

例如,如果您将公共组下拉菜单的所有内容都设置为拒绝,那么就没有必要有任何高级组!所有人将永远被拒绝在网站上执行任何操作,除非是超级用户。

用户组

用户组(也称为组)是由共享相同权限的用户组成的集合。以Joomla 1.5的组为例,发布者组有权登录网站前台,创建新文章,编辑网站上的任何文章,以及发布或取消发布文章。发布者组中的任何人都拥有执行这些相同操作的同等的权限。

然而,与Joomla 1.5不同,一个用户可以被分配到多个组中。例如,一个用户可以既是发布者组也是管理员组的一员。

您可以创建自己的组,并为他们分配自己的核心权限。核心权限在组之间是继承的

一个组可能出于两个不同的原因而被创建。一个原因是查看网站前端的页面内容。(用户组被分配访问级别以查看网站前端的页面内容。)另一个原因是指定该组可以创建、编辑、删除、发布或取消发布的内容,或由该组进行管理。

通过访问网站,网站访客被视为属于公共组的用户。

公共组可能无法被删除,但所有其他组都可以被删除。(然而,我建议您保留它们,因为它们为您提供了一个很好的权限继承工作模式的模型。)

默认组

默认情况下,Joomla 1.6及以上版本配置了与Joomla 1.5中相同的组。组和它们的核心权限如下(在阅读时可以一边唱“圣诞节的12天”)

  • 公共:公共用户可以看到网站前端的非隐藏内容。对于公共组,默认情况下,所有值都设置为未设置。正如您所期望的,公共用户不允许登录网站前端,以及其他权限。然而,他们并未明确被拒绝——他们是因为没有明确设置权限而被拒绝。
  • 注册用户:注册用户只能登录网站前端。注册用户是公共组的子组。他们被分配了网站登录权限。
  • 作者:作者可以通过创建和编辑自己的权限创建自己的内容。作者属于注册用户组。他们从注册用户那里继承了网站登录权限。
  • 编辑者:编辑者可以通过编辑权限编辑网站上的任何内容。编辑者属于作者组。他们从作者那里继承了创建和编辑自己的权限,以及从注册用户那里继承了网站登录权限。
  • 发布者:发布者可以通过编辑状态权限发布、取消发布、存档或删除内容。发布者属于编辑者组。他们从编辑者那里继承了编辑权限,从作者那里继承了创建和编辑自己的权限,以及从注册用户那里继承了网站登录权限。
  • 管理员:管理员是公共组的子组,因此之前分配给注册、作者、编辑者和发布者组的所有权限都不适用于管理员。它们必须分别重新分配。这包括网站登录、管理登录、离线访问、创建、删除、编辑、编辑状态编辑自己的权限。
  • 管理员:管理员可以通过访问组件权限编辑和配置扩展。管理员属于管理员组,因此他们从管理员那里继承了网站登录、管理登录、离线访问、创建、删除、编辑、编辑状态和编辑自己的权限。
  • 超级用户:超级用户(以前称为超级管理员)可以通过超级管理员权限更改全局配置以及其他能力。超级用户也是公共组的子组。然而,他们只有一个权限集:超级管理员权限。这个权限覆盖了所有其他权限,因此超级用户能够执行所有功能。

默认组和它们的权限在全局配置(在网站 - 全局配置 - 权限)中体现。

访问级别

访问级别指的是谁可以在网站前端看到什么内容。本质上,这等同于网站前端的读取权限。

历史上,有三种访问级别:公开(任何人都可以看到)、注册(您必须登录才能看到内容)或特殊(您必须登录为作者或更高级别的组才能看到内容)。

这些访问级别在1.6+中仍然作为默认设置存在,但您也可以创建自己的访问级别。

访问级别不继承其权限。如果一篇文章设置为仅通过自定义访问级别供发布者查看,即使是超级管理员也无法查看该文章。您必须将超级用户分配为发布者组的成员,才能在网站前端查看此文章,或者您必须将超级用户和发布者分配到相同的访问级别以查看内容。(在所有情况下,作为超级用户,您仍然能够在后台编辑此文章。)

接下来是什么?

我将撰写一系列案例研究,您可以遵循这些案例研究来将上述原则付诸实践。示例将包括

  • 不同用户从网站前端看到不同的内容
  • 简化客户端网站管理的简化后台

在Joomla社区杂志上发表的一些文章代表了作者对特定主题的个人意见或经验,可能并不代表Joomla项目的官方立场

0
媒体报道中的Joomla! - 2012年1月
将WebSocket集成到Joomla!
 

评论

已经注册? 登录这里
尚无评论。成为第一个提交评论的人

通过接受,您将访问https://magazine.joomla.net.cn/之外第三方外部提供的服务