Joomla ACL:配置后端ACL
如何通过在Joomla后端使用ACL为您的客户设置更好的用户体验,同时提高可用性
有可用的翻译
感谢 Helvecio da Silva 将本文翻译成葡萄牙语:Joomla: configurando ACL no back-end
感谢 Iván Ramos 将本文翻译成西班牙语:Joomla ACL: Configurando el ACL del backend
感谢 Claudio Driussi 将本文翻译成意大利语:migliorare l'esperienza utente aumentando l'usabilità utilizzando ACL nel back-end di Joomla
感谢 Lo-Jen Chi 将本文翻译成繁体中文:Joomla存取控制列表:設定後台的存取控制列表
感谢 Katerina Vorobyova 将本文翻译成俄语:http://joomlablog.ru/uroki-joomla/284-joomla-acl-nastrojka-paneli-administratora
请随意将本文翻译成其他语言。请包含指向本文的链接,我将回链到您!请通过Twitter(@jen4web)或通过我的网站(jenkramer.org)通知我您的翻译已发布。
引言
在先前的文章中,我介绍了ACL术语和ACL工作的一般概述,设置了前端访问级别,并创建了登录时的更好用户体验。现在我将介绍如何通过在Joomla后端使用ACL为您的客户设置更好的用户体验,同时提高可用性。
在我构建的大多数网站上,我尝试让客户从Joomla的前端编辑他们的网站。不幸的是,Joomla的前端编辑功能有限。例如,在不设置博客功能的情况下,无法轻松创建新文章或将它们链接到网站前端(有时这也不是你想要的)。因此,我往往不得不给我的客户访问Joomla后端以完成简单任务的权限。
然而,当客户到达Joomla的后端时,他们很快就会被他们不应该触碰的功能所分散。即使你给客户管理权限访问后端,他们仍然有分散的选项需要考虑。
通过减少Joomla后端的功能,只包括客户必须访问的部分,你可以使整个过程对客户来说更简单、更易用。他们将知道菜单结构中的每个选项是什么,以及如何使用它们……如果你提供适当的培训和文档。
拒绝直到允许与允许直到拒绝
Joomla的ACL配置为“拒绝直到允许”系统。公共用户组没有任何权限执行任何操作,除了查看网站前端。每个默认用户组都添加了权限,并且这些权限总是允许做某事。
记住,拒绝不能被覆盖。如果你拒绝用户组编辑某个类别内容的权限,你不能只为该类别中的一个文章覆盖该设置。然而,如果用户组从公共(意味着他们不允许做某事,但这件事可以被覆盖)继承了“未设置”的权限,他们目前无法编辑该类别的文章。然后你可以为单个文章授予允许权限并覆盖类别设置。
我们可以在几个级别为用户组添加执行特定任务的权限。让我们考虑添加编辑权限,以便我们的客户可以编辑文章。可以在几个地方添加编辑权限,并有相关的含义。
- 编辑,全局配置:许多Joomla默认用户组在全局配置中分配了编辑权限。然而,当在这里分配编辑权限时,这意味着用户组有权编辑任何类型的内容:文章,但我们还链接、联系表单等。为了禁用编辑能力,你必须使用拒绝。这可能意味着你需要拒绝Joomla结构中许多地方的编辑权限。一般来说,我不推荐在全局配置级别允许编辑。
- 编辑,文章选项:在这里添加编辑权限意味着客户可以编辑内容中的任何文章和类别。如果你不允许客户编辑特定类别或文章,你需要拒绝访问。记住,拒绝不能被覆盖。除非你的客户需要编辑文章和类别管理器中的每个地方,否则我不推荐在这里设置编辑权限。
- 编辑,单个类别:客户现在将能够编辑给定类别的文章。这最有意义,也最容易管理。你可以在单个文章中拒绝编辑,而不必担心如果以后需要覆盖Joomla结构更深处的设置会发生什么。
- 编辑单个文章:你可以为单个文章设置权限,但这很费时。一般来说,除非绝对必要且没有其他解决方案,否则我不推荐更改文章的权限。记住,如果类别级别设置了拒绝,则在文章级别不能覆盖。
通常情况下,在配置Joomla的ACL时,您应该遵循“拒绝直至允许”的策略。这将在以后为您提供最大的灵活性,以便逐篇文章调整权限。如果您选择“允许直至拒绝”,您将无法在以后更改权限。
我们试图解决的问题
假设您想为您的客户提供一些非常基本的Joomla后端访问权限
- 在特定类别或类别(或所有类别)内创建、编辑和发布/取消发布文章的能力
- 创建、编辑和发布/取消发布菜单项的能力
- 访问一些基本组件,如网页链接组件
解决方案概述
配置的一般方法如下
- 创建一个新的用户组,分配核心权限,并为客户创建一个用户。
- 分配适当的访问级别。
- 分配权限,以便客户可以访问文章管理器、菜单管理器和链接。
我建议您使用两个网络浏览器来跟随此示例。我使用Firefox进行超级用户登录,我使用Chrome进行客户登录,但您可以使用Joomla支持的任何浏览器组合。这样,我可以切换视图,在过程中调整信息。如果您只使用一个浏览器,您将需要注销并重新登录才能看到不同的视图——Joomla不允许您从同一浏览器共享两个登录。
1. 创建一个新的用户组,分配核心权限,创建一个用户
我在其他文章中详细介绍了这个过程。简而言之,请执行以下操作
- 创建一个名为“客户用户组”的新用户组。将其设置为“公共”的子组。
- 在全局配置中,在权限下,将管理员登录权限设置为允许。(如果您的客户还必须在前端登录,您可能需要将网站登录权限设置为允许。根据您的客户需要做什么相应地调整其他权限。)
- 创建一个客户用户,并将此用户分配给客户用户组。务必记住用户名和密码!
2. 分配访问级别
如果您此时以客户身份登录到Joomla,您将看到类似于以下屏幕的内容
这并不太有帮助!您能够登录,但菜单在哪里?控制面板在哪里?您能在这里做什么,除了注销吗?
您尚未配置的是网站的背面访问级别。请记住,访问级别控制谁可以看到什么,包括模块、内容等等。菜单是一个模块,即使在Joomla的后端也是。它们是管理员模块,这些管理员模块被分配了特殊访问级别。因此,您的客户还需要将特殊访问级别分配给他们的用户组。
由于特殊访问级别对于使后端ACL起作用是必需的,因此我建议您不要在Joomla的前端使用特殊作为访问级别。
现在做以下操作
- 作为超级用户,将特殊访问级别分配给客户用户组。(如果您需要帮助,请参阅这篇文章。)
- 以客户身份注销,然后再次登录。(由于访问级别已更改,您将需要注销并重新登录才能看到更改后的管理员界面。)
现在,作为客户,您应该看到类似以下的内容
现在客户可以在后端执行以下操作
- 编辑他们自己的用户资料,包括更改自己的用户名和密码(但因为他们不是超级用户,他们将无法更改他们的用户组)。
- 查看链接到帮助的信息,所有这些都是公开的网页。
- 登出,或查看网站的首页。
- 通过右侧的模块查看最受欢迎的5篇文章和最后添加的5篇文章的列表,但他们不能编辑这些文章中的任何一篇。
这仍然不是非常有用,但至少不再是绝对无用了!我们的下一步是给客户权限创建、编辑和更改文章状态。
3a. 分配权限:文章
客户应该能够访问Joomla后端的文章管理器。第一步是让客户在菜单中将文章管理器作为一个选项。一旦该选项可见,我们就可以专注于分配更具体的权限。
让文章管理器出现在客户端后端
要使文章管理器在菜单中作为选项出现,请转到内容 - 文章管理器 - 选项,选择权限选项卡,并将“访问管理界面”设置为客户端用户组的允许。在右上角点击保存。
(您可能对配置选项感到好奇。这是允许您访问选项对话框的权限。通常,您只希望超级用户能够访问此选项。)
现在转到客户端网络浏览器,刷新您的屏幕,您应该会看到文章管理器和分类管理器作为图标出现在控制面板和顶部菜单中。
遗憾的是,目前无法单独为文章管理器和分类管理器设置权限。这是Joomla ACL的一个主要弱点。
如果您以客户端身份查看文章管理器,您将能够看到所有文章的完整列表。然而,您不能编辑任何文章,也不能更改它们的状态。右上角没有创建新文章的按钮,只有一个帮助图标。
编辑所有文章与编辑文章分类
下一步是给客户权限编辑和更改这些文章的状态。您是否想通过这种方式给客户更改所有文章的能力,还是您想在每个特定的分类中给予权限,或者您需要按文章逐个给予权限?
答案是始终“视情况而定”!当配置网站的内容分类结构时,我建议以下做法
- 在设置内容分类时,请考虑ACL。如果您需要阻止客户访问网站的一些页面,您可能需要将这些页面全部放在同一个分类中,即使它们的内容非常不同。这将使ACL配置更容易。
- 同样,如果客户只编辑特定子集的文章,将它们都放在同一个分类中可能是有意义的。
- 逐个更改文章权限应仅保存为最罕见的情况。很难教客户为新文章配置权限。在分类上设置权限,客户在创建新文章时将永远不需要触碰它们。
对于每种情况,以下是一些可能的步骤。
客户应该编辑所有文章
如果客户应该编辑所有文章,请按照以下方式配置权限
- 在内容 - 文章管理器 - 选项 - 权限下,对于客户端用户组,设置创建、编辑、编辑状态和编辑自己的权限为允许。一般来说,我不给客户删除内容的权限,因为这意味着他们能够清空垃圾桶。他们可以使用编辑状态权限取消发布或删除任何文章。
客户应该编辑一个或几个分类内的文章
如果客户将只编辑一个或少数几个分类的文章,请按以下方式配置每个分类
- 您仍然需要在内容 - 文章管理器 - 选项 - 权限下允许访问管理员界面。
- 在“内容 - 分类管理器”下,点击客户将要编辑的文章分类名称。每个分类配置屏幕底部有一组权限。将这些权限设置为允许创建、编辑、编辑状态和编辑个人。
- 对于客户需要访问的每个文章分类,重复此过程。
客户需要逐篇文章访问权限。
您也可以以超级用户身份编辑单个文章,滚动到屏幕底部,并为客户设置权限。这仅在极少数情况下使用。从维护的角度来看,在分类级别配置权限是更好的方法。
我已经允许客户在网站内创建、编辑和更改任何文章的状态。现在客户的Joomla控制面板看起来像这样
3b. 分配权限:媒体管理器
作为客户,如果您编辑任何文章,您肯定需要完成的任务之一是向文章中添加图片。
当前权限分配的方式下,客户能够访问文章,通过点击标题进入编辑界面,然后在文章编辑窗口底部点击“图片”按钮。他们会打开一个看起来是这样的媒体管理器屏幕
请注意,客户能够浏览媒体管理器中已有的任何图片,但没有上传新图片到网站的界面。这是因为媒体管理器是独立于文章管理器的组件,并且因为它有自己的权限集。更重要的是,媒体管理器在以客户身份登录Joomla后台时不会出现在菜单结构中。
要更改这一点,切换到超级用户登录,转到内容 - 媒体管理器 - 选项 - 权限,将访问管理界面和创建设置为允许。
3c. 分配权限:菜单
到现在为止,你应该对接下来要做什么有相当清晰的想法。如果客户需要将文章链接到菜单,他们需要访问Joomla后台的“菜单”菜单项。
作为超级用户,转到菜单 - 菜单管理器 - 选项 - 权限,对于客户用户组,将访问管理界面、创建、编辑和编辑状态设置为允许。
不幸的是,您无法仅允许客户将菜单项添加为特定菜单项的子菜单项,或允许他们创建特定类型的菜单项。这将是非常好的Joomla ACL的补充。
3d. 分配权限:Weblinks组件
这是我的客户后台现在的样子
现在我想给客户访问Weblinks的权限,但不访问Joomla中的其他组件。幸运的是,这很容易做到,你可能已经猜到如何做到这一点。
作为超级用户,转到组件 - Weblinks - 选项 - 权限,对于客户用户组,将访问管理界面、创建、编辑、编辑状态和编辑个人设置为允许。
您可以重复此过程,为任何您希望客户访问的Joomla核心组件分配权限。
注意:一些第三方组件可能没有完全集成Joomla的ACL系统。如果ACL对您的网站很重要,在为您的网站选择正确的组件时,请务必考虑这一点。
在Joomla社区杂志上发表的一些文章代表了作者对特定主题的个人观点或经验,可能不符合Joomla项目的官方立场。
通过接受,您将访问 https://magazine.joomla.net.cn/ 外部第三方提供的服务
评论