Extension:BizzWiki/old

From MediaWiki.org

Jump to: navigation, search
If you need per-page or partial page access restrictions, you are advised to install an appropriate content management package. MediaWiki was not written to provide per-page access restrictions, and almost all hacks or patches promising to add them will likely have flaws somewhere, which could lead to exposure of confidential data. We are not responsible for anything being leaked, leading to loss of funds or one's job.
For further details, see Security issues with authorization extensions


This extension requires patches to core MediaWiki code . Extensions implemented using patches may be disabled by or interfere with upgrades and security patches. If a suitable alternative without a patch is available, we recommend you use that extension instead.


Manual on MediaWiki Extensions
List of MediaWiki Extensions
BizzWiki

Release status: beta

Implementation User rights
Description See description text on page.
Author(s) user:jldupont
MediaWiki 1.10
Download [1]
SVN ChangeLog.txt
Example BizzWiki web site

Image:Attention_niels_epting.svg BizzWiki will undergo a breaking change. All extensions not related to permission management will be removed. The author is preparing a new repository for extensions. See Extension:ExtensionManager.

Contents

[edit] Purpose

Do you require better permission management out of your MediaWiki installation? Then read on.

Strictly speaking 'BizzWiki' isn't an extension but a collection of patches and extensions to a MediaWiki installation that brings better permission management functionality. One distinguishing factor of this project is its installation simplicity: just uncompress in the MediaWiki installation and add one 'require' line in the LocalSettings.php file.

[edit] Features

  • Speed
    • Through Extension:StubManager, extensions are only loaded when required
    • Furthermore, 'namespace trigger' functionality speeds up the loading process
  • Hierarchical Namespace Level Permission functionality
    • 'Raw' permission
    • 'Viewsource' permission
    • 'Browse' permission
    • 'Search' permission
    • 'Readlog' permission
  • Enhancement of standard MediaWiki permissions to namespace awareness
    • Patrol
    • Delete
    • Move
    • Purge
    • Read, Edit, MinorEdit, Create, Createpage, Createtalk
    • Rollback
    • Upload, Reupload, Reupload-shared
    • Protect
  • Namespace Management
  • File Manager functionality (see Extension:BizzWiki/File Manager)
    • Secure (require 'commitfile' and 'readfile' rights)
    • Ability to change (under revision control) file system files
    • Ability to update a BizzWiki through the standard MediaWiki page editing process
  • InterWikiLink Manager (see Extension:InterWikiLinkManager)
    • Ability to edit the 'interwiki' table through a normal article page
  • Sidebar enhancement (see Extension:BizzWiki/SidebarEx)
    • Ability to define group contextual sidebars
  • Show Redirect Page Text (see Extension:BizzWiki/Show Redirect Page Text)
    • Ability to view additional text included in a redirect page
  • Special Pages Manager
    • Ability to add 'special pages' that reside in another namespace (see Extension:SpecialPagesManager)
    • Page resides in the database instead of a PHP file
    • Form processing can be handled through Extension:BizzWiki/Form Processor extension
    • Standard MediaWiki Special Pages for updating BizzWiki's special pages through the filesystem
  • Secure HTML (see Extension:SecureHTML)
    • Functionality which enables the usage of <html> tags within protected pages
  • Secure Properties (see Extension:SecureProperties)
    • Functionality which enables the 'getting/setting' of properties on global objects within protected pages
  • Parser Caching (see Extension:ParserTools)
    • Functionality to disable 'parser caching' on a per-page basis
  • Automatic Page Language (see Extension:AutoLanguage)
    • Functionality to enable viewing pages based on the user's preferred language automatically
    • Defaults to language 'en'
  • Form Processing (see Extension:Form Processor)
    • Functionality to process posted forms using PHP code stored in protected page ( in other words, the form can be posted to a page stored in the database and the PHP code stored in the page will be fetched & executed)
  • Page Level functionality (see Extension:PageFunctions)
    • Parser cache friendly
    • Page existence check
    • Page title change
    • Page sub-title change
    • Conditional Show Section based on user group membership
  • Email Logging (see Extension:EmailLog)
  • User Settings Changes Logging (see Extension:UserSettingsChangedLogging)
  • Integration of ReCaptcha extension
  • Page Level Restrictions
    • Defines a new page level restriction 'read'
    • Defines 'raw' and 'viewsource' rights available to users with the 'protect' right
  • Page watch/unwatch logging (see Extension:WatchLog)
  • Watch/Unwatch rights (see Extension:WatchRight)
  • Automated incremental backup through Extension:Rsync
  • Extension Management through Extension:ExtensionManager
  • Image anchors through Extension:ImageLink

and more.

[edit] Easy Forms

The platform allows for easy creation of html forms through the following functionality:

  • First off, SecureHTML extension enables the secure management of unrestricted html code to be included in pages
  • The use of standard parser functionality (i.e. magic words, functions) is of course still available (see m:Help:Magic words)
  • Pages with both 'static' and 'dynamic' content can be accommodated whilst preserving parser caching through the use of ParserPhase2 extension
  • Furthermore, the form page can be enhanced through Secure Properties extension for accessing any arbitrary global variables
  • Finally, the posted forms can be processed through Form Processor extension

Note that these extensions are not bolted to BizzWiki and can be used independently. Visit each extension's main page on this wiki for more details.

[edit] Example

Here is an example of a form (just the presentation layer) that can be achieved using BizzWiki:

'''USE WITH CAUTION'''

This special page is used to 'nuke' an entire namespace. 


Are you really sure about this operation?
<html>
 <form </html> action="{{localurl:{{NAMESPACE}}:{{PAGENAME}}Proc|action=formsubmit}}" method='post' <html>>
  <select name='wpNs'>
   </html>(($#foreachx|bwFormHelper|getRealNamespacesNames|<html><option value='$value$'>$value$</option></html>|0|edit$))<html>
  </select>
  <label>Confirmation</label><input type='radio' value='' name='wpConfirm' />
  <input type="submit" value="Nuke" />
  <input type="hidden" </html>value="(($#pf|wgUser|editToken$))" <html> name="wpEditToken" />
 </form>
</html>


<!-- The following section is provided for Sysop users -->

(($#cshow|sysop| 
== Sysop Links ==
[[{{NAMESPACE}}:{{PAGENAME}}Proc]] 
$))

As one can see, the 'html' tags can be used as well as the 'parser magic words' without any restriction. The use of the extension ParserPhase2 enables the addition of dynamic content (such as a value retrieved from a global MediaWiki object (($#pg|wgUser|editToken$))) (requires Secure Properties extension).

[edit] Some more examples

[edit] BizzWiki Page Flow

The following diagram summarizes BizzWiki's page flow.

Image:BizzWiki Flow.png

[edit] Cases (view action)

  • Case 1: No parser level caching, no parser phase 2 processing
    • P1 -> P4 -> [P9 - P10 ] P6 -> P11
  • Case 2: Parser level caching, no parser phase 2 processing
    • P1 -> P5 -> P11
  • Case 3: Parser level caching, parser phase 2 processing
    • P1 -> P5 -> P7 -> P8 -> [ P9 - P10 ] -> P11

[edit] Installation

See Installation.txt in SVN under RELxyz/BizzWiki/documentation ( docs). In short,

  • Install MediaWiki (v1.10 for now but with follow on to >1.10 planned)
  • Once the installation is up and running, uncompress the BizzWiki archive in the root of the MediaWiki installation
  • Add require('BizzWiki/BizzWikiSettings.php') to the end of LocalSettings.php
  • Apply any required customization to BizzWikiSettings.php file
  • Make sure that the root/includes directory is writable since BizzWiki replaces some of the standard MW files
  • Futhermore, check the permissions associated with the BizzWiki installation: they must be the same as for the base MediaWiki install
Please use the talk page or contact me through email using user:jldupont for help.

[edit] First Use Caution

I get a lot of emails asking me what is going on when the platform is first installed and the message 'Permission error' turns up: remember that the platform is all about 'finer grained rights management' and the default settings are set to be much more restrictive than the default MediaWiki ones. Use your 'sysop' account to customize your installation.

[edit] Download

From Google Project Hosting

[edit] Change Log

Extension:BizzWiki/ChangeLog $Id: ChangeLog.txt 674 2007-08-17 02:24:22Z jeanlou.dupont $

[edit] REL1_10_1

  • Integration of 'Hierarchical Namespace Permissions' system
  • Integration of 'File Manager' extension
  • Integration of 'Syntax Coloring' to complement 'File Manager'
  • Integration of 'Raw' right (permission to retrieve a page in 'raw' format)
  • Integration of 'Viewsource' right (permission to view the source wikitext)
  • Integration of 'New User Log' functionality
  • Patch to 'ChangesList.php' for namespace level policy enforcement (patrol right)
  • Patch to 'Pager.php' for namespace level policy enforcement (added 'browse' right)
  • Patch to 'QueryPage.php' for namespace level policy enforcement (added 'browse' right)
  • Patch to 'QueryPage.php' for namespace level policy enforcement (added 'browse' right)
  • Patch to 'SearchEngine.php' for namespace level policy enforcement (added 'search' right)
  • Patch to 'SpecialAllpages.php' for namespace level policy enforcement (added 'browse' right)
  • Patch to 'SpecialContributions.php' for handling the 'rollback' right correctly
  • Patch to 'SpecialLog.php': added 'readlog' right, namespace level policy enforcement
  • Patch to 'SpecialNewpages.php' for handling the 'patrol' right correctly
  • Patch to 'SpecialPreferences.php' for:
    • Fixed searchable namespace listing
    • Fixed watchlist related toggles
    • Fixed searchable namespace preference saving
  • Patch to 'SpecialRandompage.php' for namespace level policy enforcement
  • Patch to 'SpecialRecentchanges.php' for namespace level policy enforcement
  • Patch to 'SpecialRecentchangeslinked.php' for namespace level policy enforcement
  • Patch to 'SpecialStatistics.php' for namespace level policy enforcement
  • Patch to 'User.php':
    • Added hook 'UserIsAllowed' in order to integrate with enhanced permission sub-system.
    • Modified 'isAllowed' method.
  • Patch to 'Xml.php' for namespace level policy enforcement (added 'browse' right)

[edit] REL1_10_2

  • Patch to 'Special:Upload.php' to for handling NS_IMAGE namespace rights
  • Added 'Log/upload' permission related settings
  • Patch to 'Article.php' to disable parser caching upon article saving/updating (parser cache gets updated upon article viewing 'only')
  • Added 'Log/delete' permission related settings
  • Added 'ShowRedirectPageText' extension
  • Added 'InterWikiLinkManager' extension
  • Corrections & enhancements to 'ExtensionClass'
  • Corrections & enhancements to 'ViewsourceRight' extension
  • Added 'SidebarEx' extension

[edit] REL1_10_3

  • Added proposed modification detailed in Bugzilla #7302 to enable custom jobs.
  • Changed 'SyntaxColoring' extension name to 'FileSystem Syntax Coloring' (more descriptive)
  • Added <wikitext> section support in 'FileSystem SyntaxColoring' extension (for NS_FILESYSTEM namespace)
  • Integrated 'GeSHi' syntax highlighter extension
    • Added 'SyntaxHighlight' hook
  • Fixed 'delete' and 'protect' namespace level policy in Special:Log
  • Added 'FormProc' extension
  • Added 'SpecialPagesManager' extension
  • Added 'SecureHTML' extension
  • Added 'SecureProperties' extension
  • Added 'AddScriptCss' extension
  • Added 'ParserTools' extension

[edit] REL1_10_4

  • Added 'AutoLanguage' extension
  • Added 'ParserPhase2' extension
  • Added 'source' tag to geshi extension
  • Adjusted 'revision id' information provided through extension credits (Special:Version) on most extensions
  • Fixed 'SidebarEx' extension for 'garbage' appearing when 'Sidebar/$group' page does not exist
  • Added 'undelete' as namespace independant right for addressing 'Special:Undelete' use-cases
  • Fixed 'Pager.php' to support 'page_namespace' related queries as well as 'user' table related ones
    • Addresses 'Special:Listusers' special page issue
  • Enhanced 'SpecialPagesManager' extension with a standard MW special for updating the BizzWiki special pages by reading the filesystem '/SpecialPages' directory.

[edit] REL1_10_5

  • FileManager: Added PHP error suppression for file_get_contents upon initial page creation
  • FormProc: added functionality enabling defining a class for form processing
  • Added BizzWiki release identifier in global define 'BIZZWIKI'
  • SecureHTML: added namespace exemption list functionality
  • SecureProperties: added namespace exemption list functionality
  • Corrected geshi, extensionclass, addscriptcss for PHP warnings (usage of deprecated PHP features)
  • Adjusted 'url' field in extensions' credits
  • ParserPhase2: Fixed client side caching logic due to a bug in PHP's preg_match_all function
  • ExtensionClass: added 'AutoMethods' for initializing a derived class's hooks, parser functions & magic words automatically
  • ExtensionClass: added support for adding 'head' and 'body' scripts links whilst preserving parser caching coherency.
  • Added 'CacheTools' extension
  • Added more documentation in BizzWikiSettings.php
  • Added BizzWiki logo design files

[edit] REL1_10_6

  • Integrated 'ParserFunctions' extension
  • Integrated 'StringFunctions' extension
  • Added 'PageFunctions' extension
  • ParserPhase2: can now call any standard 'parser' functions & variables (i.e. through magic words)
  • Added 'ForeachFunctions' extension
  • Adjusted 'Log/rights' browse right for '*' group
  • Adjusted 'Log/move' browse right for '*' group
  • Adjusted 'Log/block' browse right for '*' group
  • FileManager: disabled client side caching upon accessing NS_FILESYSTEM
  • Added 'importupload' to managed rights

[edit] REL1_10_7 (released 11July2007)

  • SecureProperties: added global variable 'get' and 'set' operations
  • ParserPhase2: fixed an issue with $wgParser not setting mTitle property when needed
  • Added 'NS_INTERWIKI' accessible to '*'
  • Fixed page history for revision level policing
  • ForeachFunction: added security through only allowing 'protected' pages
  • ForeachFunction: added 'array of arrays' iteration capability
  • Added 'PermissionFunctions' extension
  • Added 'NamespaceFunctions' extension
  • Added 'StubManager' extension
  • Fixed small bug (non core, just when Special:Version is viewed in a particular case) in RawRight
  • Added 'EmailLog' extension
  • Added 'UserSettingsChanged' hook in User.php (used for logging functionality)
  • Adjusted 'Log/emaillog' browse right for '*' group
  • Added 'ReCaptcha' plug-in -- requires customization to the target site where BizzWiki is deployed.

[edit] REL1_10_8: (released 23July2007)

  • Adjusted ViewsourceRight: accomodate more PHP versions (no functional change)
  • Adjusted FileSystemSyntaxColoring : accomodate more PHP versions (no functional change)
  • Adjusted ShowRedirectPageText: accomodate more PHP versions (no functional change)
  • Adjusted SidebarEx: accomodate more PHP versions (no functional change)
  • Adjusted AddScriptCss: accomodate more PHP versions (no functional change)
  • Adjusted PageFunctions: accomodate more PHP versions (no functional change)
  • HierarchicalNamespacePermissions: added page level restrictions enforcement
  • Added 'PageRestrictions' extension: adds 'read' right enforcement at the page level etc.
  • Added 'disable' command in ParserPhase2 (addresses documentation case in NS_FILESYSTEM) (!)
  • Added 'WatchLog' extension
  • Added 'RecentChangesManager' extension
  • Adapter 'Job::factory' method to receive custom jobs as per MW1.11
  • Added 'skipcaptcha' right support
  • Integrated MW1.11 API
  • Added API to rights management process (new namespace NS_API)
  • Updated 'hnpClass' to account for API
  • Added 'FetchPartnerRC' extension (part of Replication functionality which is ongoing)
  • Added auto-detection of 'wfScript' function for MW1.11 API integration.
  • Added 'ClockTick' extension (added 'ClockTickEvent' hook)
  • Added 'clocktick.php' script
  • Added 'TaskScheduler' extension (requires 'ClockTick' extension / 'ClockTickEvent' generator such as 'clocktick.php' script)
  • Enhanced 'StubManager' to fully handle logging
  • REPLICATION FUNCTIONALITY: added 'FetchPartnerRC' extension
  • REPLICATION FUNCTIONALITY: added 'FetchPartnerLog' extension
  • StubManager: Minor fixes (removal of some PHP warnings)
  • hnpClass: Minor fixes (removal of some PHP warnings) (NO FUNCTIONAL CHANGES)
  • ForeachFunctions: Minor fixes (removal of some PHP warnings)
  • FileManager: disabled 'auto summary' features upon page creation
  • Added some documentation files
  • PageFunctions: added 'varaset', 'varaget' magic words
  • PageFunctions: added 'PageVarGet' and 'PageVarSet' hooks
  • Added 'RegexTools' extension
  • Added 'RegexNamespaceContext' extension
  • Integrated 'MakeSysop' extension
  • Integrated 'DeSysop' extension

[edit] REL1_10_9: (released 31/07/2007)

  • Added 'MiscParserFunctions' extension
  • Added 'ImageLink' extension
  • Added 'PageAfterAndBefore' extension
  • Added 'Magic Words' document for tracking all Magic Words, Tags and Parser Functions supported
  • Added 'NS_FILESYSTEM' to 'off-limits' for RegexNamespaceContext functionality.
  • FileManager: Corrected issue with 'auto-summary' fix (usage of wrong bitwise operator)
  • Geshi: added 'js' & 'css' tags for Javascript & CSS contents
  • Added parser function 'gettagsection' to MiscParserFunctions extension
  • Added 'RawPageTools' extension
  • Fixed 'RegexNamespaceContext' for it to be more friendly with other extensions (e.g. AddScriptCss)
  • Fixed 'ExtensionClass' for increased integration around 'ParserAfterTidy' hook
  • Enhanced 'StubManager' to cover all required stubbing cases (tags, magic words etc.)
  • Moved 'addtohead' tag functionality from SecureHTML to AddScriptCss
  • AddScriptCss: enhanced to be 'stub'-enabled
  • MiscParserFunctions: enhanced to be 'stub'-enabled
  • ForeachFunction: enhanced to be 'stub'-enabled
  • NamespaceFunctions: removed dependency on ExtensionClass, now is 'stub'-enabled
  • RegexTools: removed dependency on ExtensionClass, now is 'stub'-enabled
  • PageFunctions: removed dependency on ExtensionClass, now is 'stub'-enabled
  • ParserTools: removed dependency on ExtensionClass, now is 'stub'-enabled
  • DocProc: removed dependency on ExtensionClass, now is 'stub'-enabled
  • ParserPhase2: removed dependency on ExtensionClass, now is 'stub'-enabled
  • ParserPhase2: added 'EndParserPhase2' hook
  • ParserPhase2: added pattern ((magic word...)) to match more closely stock MediaWiki
  • ParserPhase2: added 'varcapset' parser function
  • Added 'ScriptingTools' extension
  • ParserPhase2: added pattern ((%magic word...%)): parser functions executed AFTER Tidy process
  • ParserPhase2: added pattern ((@magic word...@)): parser functions executed BEFORE Strip process
  • Adjusted 'StubManager' to remove some PHP warnings
  • Added 'svn:keywords 'Id' to all files
  • WatchRight extension: removed dependency on ExtensionClass, now is 'stub'-enabled
  • Added 'oversight' to the rights being managed (see Special:Ipblocklist)
  • Article.php: modified 'doDeleteArticle' method so that it does not delete RecentChanges entries (for the replicator)
  • Adjusted 'ViewsourceRight' for 'stubbing'
  • Adjusted 'RawRight' for 'stubbing'
  • Merged functionality of CacheTools in PageFunctions
  • Adjusted 'geshi' for 'stubbing'
  • Adjusted 'FileSystemSyntaxColoring' for stubbing
  • Adjusted 'ImageLink' for stubbing
  • Adjusted 'ShowRedirectPageText' for stubbing
  • Adjusted 'RecentChangesManager' for stubbing
  • Adjusted 'SpecialPagesManager' for stubbing
  • Adjusted 'InterWikiLinkManager' for stubbing
  • Adjusted 'PageAfterAndBefore' for stubbing
  • Adjusted 'FormProc' for stubbing
  • Adjusted 'AutoLanguage' for stubbing

[edit] REL1_10_10: (released 02/08/2007)

  • Integrated MW API from SVN @ 24515
  • Fixed ApiQueryLogEvents for returning the correct 'log_id' value
  • UserSettingsChangedLog: changed log entry format to be more useful for the replicator
  • UserSettingsChangedLog: Fixed multiple entries in the log when the user changes a preference setting
  • UserSettingsChangedLog: Fixed to not add log entries upon account creation
  • Added 'reload' right (FileManager extension)
  • FileManager: added 'reload' capability
  • FIXED broken 'ForeachFunction': missing file

[edit] REL1_10_11: (released 16/08/2007)

  • Added Extension:NewUserEmailNotification extension
  • Added Extension:UserLoginLogoutLog extension
  • Adjusted 'PermissionFunctions' for stubbing
  • StubManager: added namespace triggering functionality
  • Adjusted 'InterWikiLinkManager' for namespace triggering
  • Adjusted 'FileSystemSyntaxColoring' for namespace triggering
  • Adjusted 'SecureHTML' for removing dependancy on ExtensionClass. Made 'stub'-enabled
  • Added Extension:SkinTools extension
  • Added Extension:UserTools extension ( new right 'userdetails' )
  • Fixed major bug in 'RegexNamespaceContext'
  • FileSystemSyntaxColoring: some optimizations for speed
  • ParserPhase2: better handling of 'disable' commands
  • Several minor enhancements to:
    • RegexTools
    • RegexNamespaceContext
    • FileManager
    • FileSystemSyntaxColoring
    • ParserPhase2
  • SidebarEx: added per-user sidebar functionality
  • Added 'VirtualPage' extension
  • FileManager: added 'Proprietary Words' functionality
  • FileManager: added 'parser phase 2' magic words functionality
  • FileSystemSyntaxColoring: added pattern to hide wikitext
  • PageFunctions: added '#noext' magic word
  • Added Extension:AutoRedirect extension
  • Added Extension:DirectoryManager extension
  • Simplified installation procedure for all 'stubbed' extensions
  • Fix 'FileManager': didn't show up log records correctly
  • FileManager: removed dependency on ExtensionClass + made stub
  • InterWikiLinkManager: added cancellation of hook-chain on EditFormPreloadText
  • Massive update of almost all extension headers - normalization
  • StubManager: support for 'exclude' namespace triggering
  • CapitalLinks are 'false' by default (helps with FileManager & DirectoryManager extensions)
  • Added Extension:SecurePHP extension
  • Added Extension:GoogleCode extension
  • Major simplification of 'FileSystemSyntaxColoring' extension
  • 'Wikified' the changelog file

[edit] Roadmap

  • Availability features such as Replication Simple Replicator (under development)
  • 'SuperGroups' functionality: the ability to 'partition' a MediaWiki installation amongst private user groups SuperGroups(to come)
  • Central management of User table
Personal tools