Managing Joomla content access based on current users rights
One of the most requested features in the last 4! years for then-Mambo-now-Joomla! has been, still is and will be for some more time a more granular access control system (also known as ACL).
As site admin, I would like to grant access to (parts of) the content not only the registered members, but maybe based on specific sections or categories to sub-user groups. Simple example: each department should only be able to update their own content, while having read-access to others too; each customer only gets to see (not edit) their own project-specific pages etc etc.. We're going to probably have to wait for Joomla! 2.0 to implement better rights management.
In the meantime, there are a few solutions around you can use to overcome this problem -more or less.
First, some interesting content bots. A mambot, soon to be known as plugin, processes the output before it gets displayed, so can alter it as needed.
Bots such as RokGuest and RokMember or MosViewOnly and MosHideFrom allow you, inside one content item, to display selected texts and images either only to non-member visitors, or only to logged-in site members.
Drawbacks: this is valid for parts of a content item, but not all of it; and it's only member/non member, nothing more fine-grained!
Then, ACL hacks.
Example: JACL+
allows you to set up custom user groups you can assign users to. This
component hacks (replaces) some Core files, so it's a bit tedious to
update. Also, any 3rd party component you want to use with the extended
access rights needs to be adapted! So even more work at each update of
one of these!
Quite powerfull, but not so easy to maintain if you want
to keep all parts of your site updated and use a few extensions.. heck, it's free!
Next in line, a free tool such as
Account Expiration Control allows you to "charge users to access content of your web site. Account Expiration Control expands your ability to manage subscription based web sites. Fully integrated with several online payment systems, allows Admin to create payment plans and an alternative payment option."
It's commercial counterpart
mosLock, which "takes orders made by PayPal and creates registered users on your Joomla website. Use this to charge for entry to your Joomla site." does not allow for subscriptions, it is a one time charge to gain site access, currently priced at £22.50 plus taxes.
Drawbacks: this is an all or nothing solution in the sense of: either the user (pays to) register(s) on the site and gets access, or no access at all. Once he's in, he has access to all "registered" content! Free too, so who are we to complain, right?
Another tool, less content but more maintenance-oriented is the commercial, powerfull
JBAM component. "This system was originally designed to give the Primary Site Administrator the ability to lock-down the access rights of all individuals who need to perform tasks related to the maintenance of a site. The abilities of this component have been greatly enlarged to encompass activities of the Frontend of a site as well." This is most usefull for sites with quite a few admins, who also need access to some backend-only components to manage certain tasks. You can control, on a per-user basis:
- Installation of Components, Modules, Mambots, Templates, and Language Files (CMTs)
- Maintenance of the CMTs
- Creation of Content Sections, Categories, and Items
- Modification of Menus
- Modification of the Site's configuration file
- Creating or maintaining Users
- Installation and Maintenance of Components, Modules, Mambots, Templates, and Language Files (CMTs)
- Creation of Content Sections, Categories, and Items
- Modification of Menus
- Modification of the Site's configuration file
- Creating or maintaining Users
Considering the power of this component, if you need it for just one site (www.yoursite.com), then the $125 price tag is still quite reasonable.
Drawbacks: hacks multiple core files, and as Joomla! 1.0.11 is not bug free, it will only be updated for 1.0.12 so you're currently stuck if using the latest J! version.
Finally, a few commercial subscription management extensions.
- MamboCharge
"a full featured subscription management system for
Joomla and Mambo sites. It allows you to sell site subscriptions as
well as listings under such products as mosDirectory, mosets Tree and
Hot Property"
Some features:
- Recurring billings
- Automated account activation and deactivation upon termination
- Multiple product options in any number of days, months or years
- Change user's account settings when they subscribe, change them back
when their account expires
- Accept promotional coupons
- Trial periods
- Extensive reporting
- Sell access to content on a pay-per-click basis
- Create subscriptions manually
- ...
SubscriptionDELUXE or SubscriptionPro from eLearningForceThese are not too expensive either: currently ranging from $65 to $95. Pro has a few features less than Deluxe, globally it is subscriptions for multiple sites or the site the component is installed on.
A list is generated from a Site List in the setup for Subsciption PRO component installed on the Main Site.
When the logged in user clicks the info button for each listed site/item on local site, he can see an overview of what the site contains. This info (Heading + some text+ price+ access period) is generated from the component, where you write some info when adding a site or a folder.
It is possible to list free sites/folders, so the user will be registered on those after sending the order. Also the Main site can be used for buying access to if you only have one site.
The user checks the sites/folders he wants to buy access to -> clicks the Buy button -> an overview of the chosen sites/folders with price and period of each, and a total price are shown.
Opinion: if you're gonna pay, get the Deluxe version. Features Community Builder integration and many more options!
JContentSubscription is the latest and greatest, at least according to the description.
It allows you to grant really to most specific access to your sites content, and compared to the other solutions, it looks more powerfull, yet is cheaper: currently download is just $55!
- Access based on categories: select one or a few (section)
- If you don't want to restrict access to a whole category, you can even set a subscription only for individual articles by inserting a tag such as { JCSBOT SUBSCRIPTION=5 } where the number is the article id. This will then be readable only by those users signed up for this subscription!
- Permission on a per-user level with another tag: { JCSBOT USER=234 } where the number is a userID. Only this specific user can access this specific article!
- Now this sounds like a really cool feature: You can create subscriptions for any section of any component.
For example some of your forum threads, or boards, for a particular category in the weblinks component, or a contact category or item. You can even create multicomponent subscriptions! Allow access to specific DocMan or Remository folders, a Virtuemart category.. endless possibilities!

Watch a video about usage (windows media). Please note I have not tested the commercial extensions myself. This article is to be considered as just a listing of what exists, you should check out the documentation each site provides, compare prices and features to decide which is best suited to your particular needs!
|