GroupWikiBase

Summary
GroupWikiBase is a modified version of MediaWiki (1.7.x/1.8.x) with per page access controls and restrictions. It is used in the GroupWiki project, a community wiki for elearning use.

They are both available at http://groupwiki.sourceforge.net. GroupWikiBase is stable.

Key Features of GroupWikiBase:


 * granular permission of each page via the protect tab
 * global permissions
 * Special:userrights used to add/remove/edit user groups
 * search does not return restricted pages

The MediaWiki codebase does not allow for a complete standalone extension. So in addition to a file in the extensions/ folder and extra settings in LocalSettings.php, five files have to be modified directly.

Usage
After downloading and copying the files required. The global permissions can be set in LocalSettings. Here are the defaults:

// Setting the permissions and whitelists below will override page_restrictions

// Global whitelists. Any page listed here will be granted the action specified // to anyone. // note: Special pages usually require both Read and Execute $wgWhitelistRead = array('Main Page','Special:Userlogin','Special:Userlogout','Special:Search'); $wgWhitelistEdit = array; $wgWhitelistExecute = array('Special:Userlogin','Special:Userlogout');

// Global (ALL pages) permissions for custom groups // * = EVERYONE $wgGroupsAllowedCreateaccount = array('*'); $wgGroupsAllowedCreatepage = array('*'); $wgGroupsAllowedCreatetalk = array('*');

// Global permissions for mediawiki defined groups $wgAnonPermissions = array('createaccount');//array('createaccount','read','edit','createpage','createtalk'); $wgLoggedInPermissions = array('move','read','execute','edit','create','createpage','createtalk', 'upload','reupload','reupload-shared','minoredit'); $wgSysopPermissions = array('createaccount','execute','read','edit','create','createpage','createtalk', 'block','delete','deletedhistory','editinterface','import','importupload','move', 'patrol','protect','proxyunbannable','rollback','trackback','upload','reupload', 'reupload-shared','unwatchedpages','autoconfirmed','userrights');

How to Help

 * Comments and suggestions are always helpful
 * Compile and proof documentation
 * Submit bugs to sourceforge

Translations

 * English (thanks to Aleksander Apokin)

'userrights-groupname' => 'Add user group', 'userrights-groupname-edit' => 'Enter a groupname:', 'userrights-addgroup' => 'Add Group'


 * Français

'userrights-groupname' => 'Ajouter un groupe d'utilisateurs', 'userrights-groupname-edit' => 'Entrer le nom du groupe:', 'userrights-addgroup' => 'Ajouter un groupe'


 * Korean

'userrights-groupname' => '사용자그룹추가', 'userrights-groupname-edit' => '그룹이름 입력:', 'userrights-addgroup' => '그룹추가'

Ypae 21:26, 7 February 2007 (UTC)


 * German

'userrights-groupname' => 'Benutzergruppe hinzufügen', 'userrights-groupname-edit' => 'Gruppenname eingeben:', 'userrights-addgroup' => 'Gruppe hinzufügen'


 * Hebrew

'userrights-groupname' => 'הוסף קבוצת משתמשים', 'userrights-groupname-edit' => 'הכנס שם קבוצת משתמשים:', 'userrights-addgroup' => 'הוסף קבוצה'


 * Dutch

'userrights-groupname' => 'Gebruikersgroep toevoegen', 'userrights-groupname-edit' => 'Voer groepsnaam in:', 'userrights-addgroup' => 'Groep toevoegen'


 * Polish

'userrights-groupname' => 'Dodaj użytkownika do grupy', 'userrights-groupname-edit' => 'Wpisz nazwę grupy:', 'userrights-addgroup' => 'Dodaj grupę'


 * Russian

'userrights-groupname' => 'Добавь пользователя в группу', 'userrights-groupname-edit' => 'Введи название группы:', 'userrights-addgroup' => 'Добавь группу'


 * Swedish

'userrights-groupname' => 'Lägg till användargrupp', 'userrights-groupname-edit' => 'Ange gruppnamn:', 'userrights-addgroup' => 'Lägg till grupp'

Please send translations to cis-dev2 at apsc.ubc.ca.

Questions
Post your questions here. It would be very useful to have predefined default groups, for example one group could contain all individuals. These default groups should appear in the "protect" tab and it should be possible to use them to define protection for pages. Is it possible to achieve this and how?
 * Default groups?

How easy is it to create groups and add or subtract individuals from the group? Can it be done from a text file list?
 * Is there more documentation available?

I just downloaded and installed GroupWiki 1.1 and played around a bit. If I go to the "User Rights Managment" page and try to change the Groups for WikiSysop i see that there are no groups defined at all. The standard mediawiki installation has groups like "bureocrat" "WikiSysop" etc. If i try to add a group nothing happens and in the protect section of a page no groups are listed either?
 * Is it working already?

How can I add the default groups and additional groups to test the functionality? It looks like GroupWiki doesn't honor the DB table prefix! If I set up groupwiki with a table prefix I don't get any default user groups and I can't add new ones. If I set up the database without table prefix it's working fine. This should be fixed.
 * Update:


 * Answer
 * It is fixed as of version 1.1.4


 * Can I modify and existing install of MediaWiki, and can I use still use it as the core, keeping the Groupwiki mods intact?
 * Answer
 * Yes, there is a patch version available for existing installs. If you mean isolating the mod, no, you must replace the files. Replace the originals if you want to remove it.


 * Is Groupwiki going to be developed long term? Can I 'unpatch' an install to get back to the plain MediaWiki if I had to ?
 * Answer
 * Yes, there are long term plans for the development of Groupwiki. And yes again, you can 'unpatch' an install to revert back to MediaWiki.


 * If I apply the patch version to my current install, how do I update in the future? Do I do and upgrade then repatch, or do I move to the GroupWiki code tree?
 * Answer
 * If GroupWikiBase is updated, check the changelog and copy over the updated files. You can copy all the files if you haven't made your own modifications to our files. If MediaWiki is updated, we will try to port it over to the new version and then you would update your instance like you would update MediaWiki.


 * How closely do you plan to keep up with the main code base?
 * Answer
 * The project is part of the Centre for Instructional Support at The University of British Columbia. The code base will be updated as required as long as there are coop students working.


 * Do you know of anyone using GroupWiki already?
 * Answer
 * GroupWikiBase, yes. GroupWiki, no. Check the sourceforge forums.


 * One of the MediaWiki devs said somewhere he does not like Permission mods. Is this a philosophical objection, or are there potential pitfalls extending MediaWiki this way?
 * Answer
 * That is his personal opinion, which I agree with as well. MediaWiki is a great wiki and our work allows it to work in an enterprise environment. The only downside is that GroupWikiBase cannot be contained within a one-file extension but we will update the files as required.


 * Once we apply the patch, is it possible to have users who can edit pages by default.
 * Answer
 * Yes, you can allow a group with the global edit permissions.


 * Does the protection have to be applied page by page, or can you do a whole (say) Category at once?
 * Answer
 * Permissions on categories have not been tested. We have not looked into it yet as it is something on the todo list. You are welcome to implement it for us.


 * Can you please point me to the patch for updating an existing installation? Also, the schema for the DB and any initial records needed? I could not seem to find this information browsing around the zip file.
 * Answer
 * Download the manual patch version and run the sql query from the readme file. It will clear all the existing restrictions.


 * Does "granular permission" mean that a portion of the page can remain un-editable while the rest can be edited. I am very interested in your extension and if the above is possible, I thank you: you just made my life much easier!

--> for more see Talk:GroupWikiBase