2 Member Groups and Access Levels

Fabrik works closely with Joomla’s default User Groups and Access Levels to determine what each member can see and do on our Community Network website. It is therefore essential to understand how the Joomla User Management System works in order to create your own custom community network. To help us understand this process, this chapter is divided into the following four sections.

2.1 Create a Demo Community Network

2.2 Assign Demo Members to Default User Groups

2.3 Joomla Access Levels

2.4 Finish and Test our Custom User Groups

2.1 Create a Demo Community Network

The purpose of creating a custom access control system is to allow different members of our network to access different parts of our website. Fabrik comes with special functions to work directly with Joomla groups and access levels. Together, they make the ideal combination for creation of a community network.

01

To demonstrate how Joomla and Fabrik work together to build and support a community network, in this article, we will create a Demo Community Network.

#1 Define our Demo Community Network Members

A typical community network consists of at least three groups:

01aa

For security reasons, only a small group of people should have access to the back end of the website – and even then, they should only have access to the specific tools in the back end that they need to administer the website. We will cover these administration tools, such as the newsletter component and the Downloads component, in a later chapter. These administrators will typically not be managed by Fabrik forms. Instead, they will be added directly as Joomla administrators using the Joomla Administrator Control Panel User Manager.

The remaining two groups are normal members and special members. Normal members are often given a free membership and merely register in order to get access to the Member Lists, and Search Functions and receive the Members Newsletter and attend Member Events. Normal members can see the Lists and Search Functions and Coming events merely by logging into the website.

Special Members register with the same Member Registration form as Normal Members. However, they typically pay a small fee which allows them to create custom Member Profile Pages which are then shown on a special searchable list which can be viewed by all members. In our example, we will call these special members Service Providers – because they offer services to other members of the group (who in turn are interested in hiring some of the service providers). However, if this were an educational network, the Special Members might be teachers offering courses to the community and the normal members might be parents and teachers interested in taking those courses. Either way, if special members paid $10 to $20 per year, this fee can pay for the ongoing costs of the network with as few as 100 Special Members.

The important point is that both Special Members and Normal Members join the group by filling out the same Fabrik custom Registration form. Both Special Members access their group functions by logging into the front end of the website. But they see different menu items when they log into the front end of the website. Neither Special Members or Normal Members ever need to log into the back end of the website.

2.2 Assign Demo Members to User Groups

In our last article, we created 20 Demo Members. Seven were registered by the Super User on the back end of our website. In this article, we will assign one of these 7 members to an additional default user group to see how the default Joomla User Management system works. Then in the next article, we will review how to use Joomla Access Levels in combination with Joomla User groups.

We will then create a new custom user group called Services Providers which we will use to give special permissions to our Service Provider members. We can then use our Custom Registration form to create accounts for the other 13 members of our Demo Network and assign them to the Services Providers group. We can then see how the Fabrik Search Function works.

User Manager Edit User Screen
To better understand how the default Joomla User Management system works, log in as a Super User and click on the Users menu item. Then click on the Newsletter Coordinator to open the Edit screen. Then click on the Assigned User Groups tab:

01

We can see that any registered user is automatically placed in the Registered User group. Check the box for Author. Then click Save and Close. This person now belongs to two groups – the Registered group and the Author group.

Make a Create Article Menu Item
Before this person can create any articles, we need to create a new special menu item for the front end of our website that is only visible to those above the rank of registered user. Click on the Menus, Main Menu, New Menu Item. For Menu Item type, select Articles, Create Article. For title, type Create Article. For access, go to the lower right corner of the screen and assign this menu item to the “Special” group (which we will talk more about in a bit). Then click Save and Close.

Next create a new article called Member Log In. Type:

If you are already a member of our group, use the form below to log into our community network with your username and password. If you are not yet a member of our group, go to our Member Sign Up page to join our group!

Then click Save and Close. Then go to Menu, Main Menu, New to create a new menu item for this page. Then go to Extensions, Modules and click on the Log In Module to edit it. Put it in the Helix Bottom 1 position so it is below the article text. Then click Publish. Then click on the Menu Assignment tab and click Only on the pages selected. Then click None. Then click the Member Log In Menu item. Then click Save and Close.

Create Categories for each of our Service Provider Categories.
Authors can and should assign their articles to a category. For this to happen, the category needs to exist before the author creates their article. We will therefore create a category called Services Providers and in that category, we will create categories called Carpenters, Plumbers and Teachers. Then create new menu items of the type Category List for the Services Provider category this menu item only viewable by Registered Members. Then create new menu items of the type Category List for the Carpenter, Plumber and Teacher categories which each menu item only viewable by Registered Members and each menu item under the Services Provider parent menu item.

2.3 Joomla Access Levels

Joomla Access Levels are a way of more precisely defining what groups can see in the front end of our website. Access Levels are also useful for creating custom groups to precisely define what each custom group can see in the front end of our website. Pages and Categories can not only be assigned to different groups with precise permissions – but they can also be assigned to precise Access Levels. But Access Levels can be a bit confusing because folks tend to confuse Access Levels with Groups. As we will see, you can have several groups with the same access level even though each group has different permissions in terms of what each group can do.

Here is a diagram of how the Joomla Access Control System works:

01

A new member begins by filling out the website registration form. This makes them a member of our organization. Members can then be assigned to one or more groups by anyone in the organization with authority to assign them to a group. Each Group that a member is assigned to come with certain permissions which allows the member of that group to take certain actions.

Joomla allows creation of any number of groups - each of which can be assigned their own precise Permissions. In addition, each Joomla group can be assigned to a precise Joomla Access Viewing Level (and new Access viewing levels can be created) which define which pages the group can view.

What Joomla does when a person logs into a website is to first check the group they belong to. Joomla then checks the permissions they group has. Joomla finally checks the access level the the group has. Only if all three conditions are met (Group, Permissions and Access Level) is the page or menu item displayed.

This is why Joomla is one of the most secure and customizable web platforms in existence. For comparison, another popular web building platform, Wordpress only has four types of user groups and no way in its core to add user groups, change permissions or assign access levels. There are Wordpress Plugins that do some of this. But because these plugins are outside of the core, they are not secure and they are not reliable. To see the default Joomla Access Levels, click on Users, Access Levels:

02

The default access levels are Public, Guest, Registered, Special and Super User. Click on the Public Access Level and you will see it is only assigned to the Public Group. Guest is connected with the Guest Group. But Registered is connected with the Manager Group, the Registered Group and the Super User Group.

2.4 Finish and Test our Custom Member Groups

In a previous article, we created 6 new groups and connected them to Access Levels. In this article, we will we will review steps 5, 6, 7, 8 and 9 of the Custom Group creation process and then test the back end of our new Demo network.

#5 Create an Administrator Menu to appear on the left side of the Front End whenever an administrator logs in
Several new menu items will be needed for the Administrator end of our website to be accessed by various levels of all six new administrator groups. We could just add these menu items to the main menu. But it is better to leave the Main Menu for links needed by the General Public. We will therefore create a new Administrator Menu and place it on the right side of our home page. This way whenever an administrator logs into the front end of our website, there will be an obvious new menu that pops up with the links they need to use to go to their particular areas on our website. To create a new Administrator Menu, log in as a Super User and click on Menus, Manage, Add New Menu. For Title, type in Administrator Menu. For Menu Type, type in administratormenu (no spaces). For Description, type in Administrator Menu. For client, leave it set for Site as we want this to display on the Front end of our website and not the back end.

01

Then click Save and Close. This will bring us back to the Menu Manager where our new menu now appears in the table of menus:

03

Click on “Add a module for this menu type.” For Module Title, type in Administrator Menu. For Title, leave it at Show. For Position, click on Helix title position. For Access, change the access to the Special Admin Access Level. This will allow all administrators access to the Administrator Menu – even though the actual menu items each group sees will depend on the access level of each menu item.