User:Barre/MediaWiki: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
 
(2 intermediate revisions by the same user not shown)
Line 3: Line 3:
* Check [[User:Barre/MediaWiki/Extensions|my extensions]]
* Check [[User:Barre/MediaWiki/Extensions|my extensions]]
* [http://en.wikipedia.org/wiki/User:Pilaf/Live_Preview Live Preview] is an extension to Wikipedia's edit page which allows you to generate instant previews of the page you're editing.
* [http://en.wikipedia.org/wiki/User:Pilaf/Live_Preview Live Preview] is an extension to Wikipedia's edit page which allows you to generate instant previews of the page you're editing.
* [http://meta.wikimedia.org/wiki/Category:Mediawiki_Extensions Mediawiki Extensions]


==Installation==
==Installation==
Line 34: Line 35:


After some talk with the developpers, it seems MediaWiki is actually not designed to protect pages from being read.
After some talk with the developpers, it seems MediaWiki is actually not designed to protect pages from being read.
==Changes I Made To This Wiki==
* LocalSettings.php:
<pre>
# Extensions
include("extensions/kwIncludeFile.php");
include("extensions/kwArticleTimeStamp.php");
include("extensions/kwSiteMap.php");
include("extensions/kwBreadCrumbs.php");
</pre>
* includes/DefaultSettings.php:
<pre>
$wgUseFileCache = false;
# Which namespaces should support subpages?
# See Language.php for a list of namespaces.
#
$wgNamespacesWithSubpages = array( -1 => 0, 0 => 1, 1 => 1, 2 => 1, 3 => 1, 4 => 0, 5 => 1, 6 => 0, 7 => 1, 8 => 0, 9 => 1, 10 => 0, 11 => 1);
$wgNamespacesToBeSearchedDefault = array( -1 => 0, 0 => 1, 1 => 0, 2 => 1, 3 => 0, 4 => 0, 5 => 0, 6 => 0, 7 => 0, 8 => 0, 9 => 1, 10 => 0, 11 => 1 );
</pre>
* /etc/apache/httpd.conf
<pre>
# Rewrite http://wiki.domain.tld/article properly, this is the main rule
# RewriteRule .*Wiki(.*) /Wiki/index.php$1 [L]
# rewrite the "abusive" above rule so that it does not catch TWiki
#  RewriteRule ^[^T]*Wiki(.*) /Wiki/index.php$1 [L]
# The full path is need here ! Otherwise .*Wiki is too greedy
# and there is no way you can have a page with the word Wiki in it
RewriteRule ^.*projects/KitwareWeb/MediaWiki(.*) /Wiki/index.php$1 [L]
RewriteCond %{REQUEST_URI} ^/Wiki/MediaWiki
RewriteRule (.*) /Wiki/index.php?$1 [L]
RewriteCond %{REQUEST_URI} ^/Wiki/config
RewriteRule (.*) /Wiki/config/index.php?$1 [L]
</pre>

Latest revision as of 15:01, 16 May 2005

Extensions

Installation

  • PHP: fopen() does not seem to work quite well with PHP 4.3.3 on Win32 (failed to open stream: no suitable wrapper could be found). Use 4.3.10 instead.

Configuration

Editing

ACL

I had the feeling the <LocationMatch> directive would provide a way to protect a sub-section of a MediaWiki. For example, the following code requires a valid authenticated user to access any page matching the (.*)[kK]wGrid.?Private(.*) regexp.

<LocationMatch "(.*)[kK]wGrid.?Private(.*)">
  AuthName "kwGrid private section"
  AuthType Basic
  AuthUserFile /projects/KitwareWeb/restricted_accesses/wiki/kwGrid/passwd
  require valid-user
</LocationMatch>

The above code triggers a password-based authentication for any page matching the kwGrid:Private prefix, thus restricting access to a virtual sub-section or sub-directory under kwGrid:Private. For example, http://public.kitware.com/Wiki/KwGrid:Private/Welcome. It also matches any files prefixed with kwGridPrivate.

Sadly, this is flawed. The <LocationMatch> directive matches an URL, but does not match the query string. Thus, there is no way to restrict access to a page when it is accessed using any of the history/diff/edit/move action. For example, http://public.kitware.com/Wiki?title=KwGrid:Private/Welcome&action=edit gives unrestricted access to the page, since the http://public.kitware.com/Wiki URL does not match our regexp.

After some talk with the developpers, it seems MediaWiki is actually not designed to protect pages from being read.

Changes I Made To This Wiki

  • LocalSettings.php:
# Extensions
include("extensions/kwIncludeFile.php");
include("extensions/kwArticleTimeStamp.php");
include("extensions/kwSiteMap.php");
include("extensions/kwBreadCrumbs.php");
  • includes/DefaultSettings.php:
$wgUseFileCache = false;
# Which namespaces should support subpages?
# See Language.php for a list of namespaces.
#
$wgNamespacesWithSubpages = array( -1 => 0, 0 => 1, 1 => 1, 2 => 1, 3 => 1, 4 => 0, 5 => 1, 6 => 0, 7 => 1, 8 => 0, 9 => 1, 10 => 0, 11 => 1);

$wgNamespacesToBeSearchedDefault = array( -1 => 0, 0 => 1, 1 => 0, 2 => 1, 3 => 0, 4 => 0, 5 => 0, 6 => 0, 7 => 0, 8 => 0, 9 => 1, 10 => 0, 11 => 1 );
  • /etc/apache/httpd.conf
 # Rewrite http://wiki.domain.tld/article properly, this is the main rule
 # RewriteRule .*Wiki(.*) /Wiki/index.php$1 [L]
 # rewrite the "abusive" above rule so that it does not catch TWiki
 #  RewriteRule ^[^T]*Wiki(.*) /Wiki/index.php$1 [L]
 # The full path is need here ! Otherwise .*Wiki is too greedy
 # and there is no way you can have a page with the word Wiki in it
 RewriteRule ^.*projects/KitwareWeb/MediaWiki(.*) /Wiki/index.php$1 [L]

 RewriteCond %{REQUEST_URI} ^/Wiki/MediaWiki
 RewriteRule (.*) /Wiki/index.php?$1 [L]
 RewriteCond %{REQUEST_URI} ^/Wiki/config
 RewriteRule (.*) /Wiki/config/index.php?$1 [L]