Video: Speed Up Joomla with mod_deflate - Yireo

Joomla! 1.6 ACLs (1): Marketing group

Within Joomla! 1.6, you can add new usergroups and set advanced permissions. The definition of who can do what is made possible through the mechanism of ACLs (Access Control Lists). This tutorial is the first of a set of tutorials that explains the practical usage of ACLs.

Please note that this information is based on the Beta-version of Joomla! 1.6, which should not be used to build a production site. Some functionality discussed in this tutorial may still contain bugs.

Meet the marketing guy

The purpose of this tutorial is to allow the marketing department to add or edit their own content. Because there are multiple people working for marketing, it's not smart to edit the permissions on a per-user base, but instead we will create a new group.

The principle of Joomla! ACL is that you need to define who (the group) can do what (the access level), and then assign users to that group. Also you might need to finetune the access level per article, per category or per component.

Create a new group

Within the Joomla! Administrator, you can navigate to Users > Groups and a new group with the name Marketing. It's parent is Public, so it does not inherit permissions at all. It's a blank group, requiring us to define exactly which persons a right should have.

joomla16_acl1_1

Creating a new Access Level

Next, we need to define what this group is allowed to do. This is made possible by defining an Access Level. Through Users > Accesss Levels we can add a new Access Level and assign the newly created group Marketing to it. We have named the Access Level here Marketing as well.

joomla16_acl1_2

Defining the constraints of the Access Level

Adding the Access Level doesn't do much. We need to define what this Access Level actually gives access to. This is defined per component. So for instance, when dealing with content, the Article Component should be configured to allow the new Access Level Marketing access to certain articles and categories.

joomla16_acl1_3

Here, we open up the category News and add the Marketing group to it. When editing the category, you will find on the right a collapsable tab called Category Access Level. The summary shows that the new Marketing group doesn't have any permissions yet.

joomla16_acl1_4

When hitting the Create-tab we can allow members of the Marketing group to create new articles within that category. The same can be configured under the tabs Delete, Edit and Edit State. The last one - Edit State - defines whether or not an user can publish, unpublish or archive an article.

joomla16_acl1_5

By checking back under the Summary tab you can quickly get an overview of the end result.

Login permissions

When creating a new user, we can assign this user to both the group Registered and the group Marketing. The group Registered gives the user the ability to login and access certain parts of the website, but the group Marketing actually gives the user access to the category News (like configured above).

joomla16_acl1_6

This works fine - an user can be member of multiple groups. But if you only want the group Marketing to be used, you need to add some extra permissions as well. This can be done through the Global Configuration under the tab Permissions.

In this case, the User Group Marketing needs to be able to login, so Site Login is set to Allow.

Conclusion

As you can see, giving certain people access to certain content is a lot less straightforward as you might think. You need to define permissions in various different parts of Joomla!. The ACL-functionality is very flexible, but it also adds a complete new level of complexity.

Because it's so complex, implementing Joomla! ACLs requires carefull planning. If you don't need it, don't touch it. If you do need it, first document what needs to be done and anticipate all exceptions, before starting to click wildly in the GUI. With our tutorials we hope to give you some guidance here.

Created on Sunday, 23 May 2010
Modified on Sunday, 23 May 2010

About Yireo

Yireo tries to help webdevelopers build successful Joomla! and Magento sites.

More about Yireo