Extension:Restrict access by category and group

What can this extension do?
This extension can restrict access to users by group and document category.

Even though Mediawiki is a free/public access collaborative document tool, sometimes it can be helpful, especially in business environments, to have a restricted view of wiki documents.

For example, department's financial documents should not be accessed by customer services users.

In this extension you can establish four access restrictions:
 * Public: White pages: those are public pages that can be accessed by everybody. This is helpful when you have a private mediawiki and anonymous can only authenticate and see Main page. See $wgWhitelistRead.
 * Public categories: those are all categories that aren't in your groups.php file. Those categories are public.
 * No public categories: those are all categories that are in your groups.php file. Those categories are restricted. Documents that belong to these categories may be accessed by users who belong to at least one of these groups.
 * Private categories:those are all categories that are in your groups.php file with [private] = true option. These categories are private, and only users who belong to one or more of this categories closed to which the document will have access. It is the same behavior that if the document did not belong to any of the no public categories basis only membership to the private category (respect to access).

Configuration Example
If you have same configuration like this:



then:
 * user1 could access to public document 1 only.
 * user 2 could access to public document 1, no public document 3 and no public document 4.
 * user 3 could access to public document 1, no public document 3, no public document 4 and private document 2.

Usage
All documents you want to restrict access to, you must add to a category. So you have multiples categories.

Files:
 * $IP/extensions/rabcg/rabcg.php: this is the extension.
 * $IP/extensions/rabcg/groups.php: this is the group catalog.

In your groups.php file, you must add the categories you want to make no public or private. This is made by group definition. For Example:

with the following code:

Then add the following to your LocalSettings.php: