11分钟阅读时间 (2274 字)

Joomla ACL:访问级别

Joomla ACL: Access Levels

现在您已经掌握了ACL术语,让我们实施一个简单的系统,在网站上不同的用户可以看到不同的内容。为了跟随这个例子,您应该使用Joomla 1.7或更高版本。

意大利语翻译来自 BlogJoomla.it

繁体中文翻译来自 Lo Jen-Chih

俄语翻译来自 Katerina Vorobyova

在您开始点击按钮之前,您必须为实施此网站制定一个ACL策略。首先,描述您试图解决的问题

为我要开发的学校网站

  • 公众可以访问该网站并查看大部分内容。然而,学生和教师后台有内容。
  • 教师可以看到专门为教师设计的内容、所有学生内容以及公开内容。
  • 学生只能看到学生内容(不是教师内容)和公开内容。

请注意,我们只讨论了可以看到的内容。我们没有讨论编辑、创建、删除或管理内容。这表明存在一个阅读问题——或者是一个与访问级别的问题。

接下来,这里描述了三个组:公众、学生和教师。公众组已经存在,但我们需要创建学生和教师组。所有这些用户只是登录网站以查看更多内容,因此我们只需将登录网站前端的能力分配给此组。实质上,教师和学生是注册用户。

然后,我们需要创建我们的内容,以便教师可以看到学生和教师内容,而学生只能看到学生内容。

我们对这个问题的处理方法如下

  1. 创建我们的组,称为“学生”和“教师”。
  2. 为我们的组分配核心权限。在这种情况下,我们正在分配网站登录核心权限。
  3. 创建我们的用户并将他们分配到组中。我将创建一个名为“学生”和一个名为“教师”的示例,但在现实世界中,您可能需要创建许多账户。
  4. 为学生创建一个访问级别,并为教师创建另一个访问级别。
  5. 为学生和教师创建类别,并分配正确的访问级别。
  6. 为师生创建文章,并分配正确的访问级别。
  7. 为师生创建菜单项,并分配正确的访问级别。
  8. 测试我们的登录,看看是否工作正常。

1. 创建我们的组

要创建组,请登录Joomla网站的后台。

转到顶部菜单,然后转到用户 - 添加新组。您将看到此屏幕。

Add User Group screen.

  1. 在组标题中,输入教师组
  2. 在组父级中,选择公共
  3. 点击右上角的保存 & 新建按钮,以保存教师组并创建新组。
  4. 在组标题中,输入学生组
  5. 在组父级中,选择公共
  6. 点击保存 & 关闭以保存我们的学生组并返回到用户管理器:用户组屏幕。

为什么我要创建一个教师组和一个学生组,并将它们的父级设置为公共? 当您开始嵌套用户组时,尤其是在您刚开始使用ACL时,权限可能会迅速变得复杂。通过使您的组成为公共的子组,您可以直接控制组的权限,而不是通过其他组的继承,这对大多数人来说更容易理解。

在这个例子中,将这些组设置为注册的子组也不会更复杂。如果您选择这样做,那也可以。然而,随着您使用越来越复杂的ACL示例,请记住,将用户组设置为公共的子组可以消除复杂性,并且对调试很有用。

2. 分配核心权限

转到网站 - 全局配置,然后转到权限选项卡。对于学生组和教师组,将网站登录权限设置为允许。将所有其他设置保留为继承。请记住,这些组从公共组继承权限,因此默认情况下,学生组和教师组不允许执行任何操作。

3. 创建用户,分配到组

现在我们已经创建了组,我们需要创建一些用户来居住在这些组中。

为此,转到用户 - 添加新用户,您将看到以下屏幕

User Manager screen in Joomla 1.6.

  • 姓名:输入用户的完整姓名,在这种情况下,琼斯女士。
  • 登录名:为此人输入用户名:teacher。
  • 密码确认密码:输入两次相同的密码。
  • 电子邮件:输入用户的电子邮件地址。(如果您不是为真实用户做这件事,使用此电子邮件地址正在受到垃圾邮件机器人的保护。您需要启用JavaScript才能查看它。.)

跳过此页上的其他字段,并滚动到分配的组。请注意,默认情况下,已选中注册。

从列表中选择“教师”。琼斯女士,这位教师,现在被分配到注册用户组和教师用户组。

点击“保存 & 新建”,然后为学生登录重复此过程。学生的名字是David Smith,用户名是david。使用此电子邮件地址正在受到垃圾邮件机器人的保护。您需要启用JavaScript才能查看它。如果您需要另一个电子邮件地址。将David分配到学生组和注册组。完成后选择保存 & 关闭。

为什么我们要将这些用户分配到注册用户组以及其他组? 有时候您会希望将信息放在登录后面,这样任何登录的人都可以看到,而不是特定用户组。通过将您的用户分配给更具体的组以及注册用户组,您可以为(例如)显示任何登录的人的用户菜单,但特定菜单项仅对特定用户组显示。这也有助于我们决定为网站自定义登录页面。

4. 创建访问级别

我们已经设置了我们的用户、核心权限和用户组,现在是时候创建两个访问级别了,一个是学生访问级别,另一个是教师访问级别。

转到“用户”-“添加新访问级别”,你应该会看到这个屏幕

Add access level screen.

对于“级别标题”,输入“教师访问级别”。然后勾选“教师组”旁边的框。这将只允许教师看到“教师组”的内容。

点击“保存 & 新建”,将“级别标题”输入为“学生访问级别”,并勾选“学生组”和“教师组”的框。这意味着教师可以查看这些学生内容,而学生也可以看到学生内容。点击“保存 & 关闭”以离开此屏幕。

为什么我们没有将注册用户分配到教师或学生访问级别?通过将注册用户组分配给教师或学生访问级别,那么注册用户组中的每个人都将看到教师和/或学生信息。访问级别是决定谁可以看到哪些内容的关键。仔细考虑哪些组应该包含在每个访问级别中。

为什么我们没有将超级用户包括在教师或学生访问级别中?通过不包括超级用户在这些访问级别中,当超级用户登录网站前端时,他们将无法看到教师或学生内容。然而,他们可以从Joomla的后端查看和编辑这些内容。如果超级用户查看教师和学生内容很重要,请确保将超级用户分配到教师和学生访问级别。

5. 创建分类

在这个网站上,我为教师创建了一个专门供他们查看的内容分类(在“内容”-“添加新分类”下)

Add new category.

在创建这个分类时,务必将访问下拉菜单(即访问级别)设置为“教师访问级别”。

我还为学生创建了一个分类。设置方式相同,只是标题是“学生分类”,访问级别是“学生访问级别”。

为什么我们为教师和学生内容创建了特定的分类?您可以在Joomla中的任何位置创建内容,然后根据需要逐篇文章分配访问级别。大多数文章将被设置为公共访问级别,但您可以根据需要为注册访问级别、教师访问级别或学生访问级别设置例外。

然而,将您的文章分组到特定的分类中有助于明确该内容的目标受众和访问级别。记住,如果您在单个分类中管理的内容太多,您始终可以在教师分类中创建子分类。

一旦为分类设置了访问级别,该访问级别就会应用于该分类下的所有文章,即使您将访问级别设置为公共。

6. 创建文章

接下来,我为教师设置了一篇文章,属于教师分类。要创建新文章,请转到“内容”-“添加新文章”。

Article for teachers.

我填写了以下字段

  • 标题:这篇文章是为教师准备的
  • 分类:教师分类
  • 状态:已发布
  • 访问:教师访问级别
  • 文章文本:输入一些示例文本。

点击“保存 & 新建”,然后为学生重复此过程

  • 标题:这篇文章是为学生准备的
  • 分类:学生分类
  • 状态:已发布
  • 访问:学生访问级别
  • 文章文本:输入一些示例文本。

完成时,点击“保存 & 关闭”。

虽然我只为每个组创建了一篇文章,但我可以创建尽可能多的文章。

如果文章继承分类的访问级别,为什么你还要在每篇文章中设置访问级别呢?对我来说,这就像一份自带的文档。严格来说,你可以将访问级别设置为公共(默认),但文章仍然只能被教师或学生访问级别的成员查看。然而,当我为每篇文章设置访问级别时,我确保在9个月后回来尝试为一位客户解决问题时,我不会在尝试重新创建某个文章的访问级别继承时分心——它已经标明了相关信息。

7. 创建菜单项

接下来是菜单。在主菜单(在“菜单”-“主菜单”下),我们将添加两个链接,一个用于教师,一个用于学生。

要创建链接,我前往了右上角的“新建”,选择了菜单项类型为“分类列表”,并输入了以下其他信息

New menu item.

  • 标题:教师信息
  • 菜单项类型:点击选择,然后选择“分类列表”
  • 状态:已发布
  • 访问:教师访问级别
  • 选择一个分类:教师分类

点击“保存 & 新建”,为学生重复此过程

  • 标题:学生信息
  • 菜单项类型:点击选择,然后选择“分类列表”
  • 状态:已发布
  • 访问:学生访问级别
  • 选择一个分类:学生分类

完成操作后,点击“保存 & 关闭”。

为什么选择分类列表?这允许将分类的所有信息列在一张页面上。你可以将此链接创建为一个分类博客、单个文章或任何其他类型的链接。

为什么为菜单设置了访问级别?这不是会从文章继承吗?在菜单项的情况下,它们的访问级别与其链接的内容独立。换句话说,你可以有一个访问级别为“教师访问级别”的文章,但将菜单项的访问级别设为公共。如果你这样做,只要显示菜单的模块也设置为公共访问级别,链接将对任何访问网站的访客可见。当点击时,如果访客没有查看链接后面内容的权限,他们将看到一个消息,表明他们没有权限访问此位置。

这可能正是你想要用于销售信息订阅的网站(购买我们的订阅,查看此文章后面的信息!)的行为。但如果你试图提供最不令人沮丧的用户体验,将菜单项的访问级别与背后的内容相匹配是一个好主意。

8. 测试我们的登录

我们终于配置了网站为学生和教师提供不同内容所需的所有内容。

前往网站的前端。在登录框中输入您的登录信息。

输入教师的用户名和密码,Ms. Jones。请记住,用户名是“teacher”,而你为她设置的密码。

如果你一切都做对了,你应该在主菜单中看到两个链接,一个是“教师信息”,一个是“学生信息”。

返回登录页面,点击“注销”按钮。现在以David Smith(学生)的身份重复此过程,用户名为david,密码是你给他的。

如果你一切都做对了,你应该在主菜单中看到一个“学生信息”的链接。

结论

如果你一直按照这个例子做,可能需要大约15分钟来完成。

你认为登录体验看起来相当难看吗?我也是这么想的。在我的下一篇文章中,我将向你展示如何根据这个相同的例子为所有用户组自定义登录屏幕。

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

0
 

评论

已经注册? 在此登录
尚无评论。成为第一个发表评论的人

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