linamh/www-apps/mediawiki/files/mediawiki-1.16.0-restrict-0.8.4-1.patch
2010-10-22 14:39:13 +00:00

1791 lines
83 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Submitted By: Mario Fetka (mario dot fetka at gmail dot com)
Date: 2010-10-22
Initial Package Version: 0.8.4
Origin: http://www.mediawiki.org/wiki/Extension:Page_access_restriction
Upstream Status: never accepted
Description: This is a patch to enable page restriction under the MediaWiki software.
Pages can be articles or categories.
It adds a new |restrict| tab link allowing members of the group restrict to restrict pages.
Users member of the group viewrestrict can read (and modify) the restricted pages.
Other users cannot see, search, export, etc, the restricted pages.
You can still |protect| them for editing.
diff -Naur mediawiki-1.16.0.orig/README.restriction-patch mediawiki-1.16.0/README.restriction-patch
--- mediawiki-1.16.0.orig/README.restriction-patch 1970-01-01 00:00:00.000000000 +0000
+++ mediawiki-1.16.0/README.restriction-patch 2010-09-25 09:54:45.405359799 +0000
@@ -0,0 +1,141 @@
+
+Article restriction patch for MediaWiki
+---------------------------------------
+
+Here is a patch to enable article restriction under MediaWiki. Pages can be articles or categories. It adds a new |restrict| tab link allowing members of the group ''restrict'' to restrict pages. Users member of the group ''viewrestrict'' can read (and modify) the restricted pages. Others users cannot see, search, export, etc, the restricted pages. You can still |protect| them for editing. A restricted page is distinguished by a red background tab, and you have a special page (Special:Restrictedpages) to list the restricted pages. All restriction/unrestriction actions are loggued in the wiki log. It is also possible to restrict pages by providing a regular expression array matching titles. Optionaly the user's pages can be restricted to their owner. Currently it is localized in English, German, Dutch, Swedish, Finnish, Russian, Hebrew and French.
+
+This feature is mainly useful for intranet relying on WikiMedia as a non-encyclopedic content management system, like e-learning platforms or informational systems. To respect the wiki philosophy, it is not appropriate to use it to restrict public access!
+
+To install restriction-patch, download MediaWiki (do a security backup if you patch your own installation).
+
+- Apply patch :
+
+ mv restriction-version.mediawiki-version.patch ./mediawiki-version
+ cd ./mediawiki-version
+ patch -p0 < restriction-version.mediawiki-version.patch
+
+- Configure :
+
+Restriction is disabled by default. Add in your ''./LocalSettings.php'' file (below require_once( "includes/DefaultSettings.php" );) :
+
+ /**
+ * If true, a new menu action allows to restrict pages access to 'restrict' group users. If false, all previously restricted pages are accessible again.
+ */
+ $wgEnableRestrict = true;
+
+ /**
+ * If true, new pages are restricted by default for 'restrict' group users.
+ */
+ $wgRestrictNewPages = false;
+
+ /**
+ * If true restrict user pages to their owner (as well as viewrestrict/restrict members)
+ */
+ $wgUserPageRestrict = false;
+
+ /**
+ * when wgUserPageRestrict is enabled, still allow user pages to be read by others
+ */
+ $wgUserReadRestrict = false;
+
+ /**
+ * Regular expression array to restrict matching pages
+ * eg. $wgRegexRestrict = array("^Secure:", "^Secret "); // restrict all pages where title is like 'Secure:...' or 'Secret ...'
+ * Warning : titles can still be retrieved via the search engine (to be fixed)
+ */
+ $wgRegexRestrict = array();
+
+ /**
+ * If true do not add recent changes entry for restricted pages
+ */
+ $wgNoRecentChangesRestrict = true;
+
+ /**
+ * If true hide log entries related to restriction, except for 'restrict' or 'viewrestrict' users (Special:Log page)
+ */
+ $wgHideRestrictLog = true;
+
+
+Go to the ''User rights management'' page (in special pages) and add users in group ''restrict'' (allow to view and restrict pages) or ''viewrestrict'' (allow only to view restricted pages). If $wgUserPageRestrict is true, user pages are restricted to their respective owner, as well as members of the ''viewrestrict'' group.
+
+Don't write sensible information in page titles, they could be retrieved in some cases. This is beta and GPL, test and feedback welcome !
+
+
+Jerome Combaz (restrict-mediawiki/at/conseil-recherche-innovation.net)
+
+
+ Download patch, updates, screenshots and comments here :
+ http://conseil-recherche-innovation.net/index.php/1974/04/11/41-restrict-pages-under-mediawiki-15
+
+
+ChangeLog
+---------
+Version beta-0.8.4 for MW 1.16.0 (2010-09-25)
+- Made the patch work for MW 1.16.0 (Mario Fetka)
+
+Version beta-0.8.4 for MW 1.15.1 (2010-02-06)
+- Made the patch work for MW 1.15.1 (Mario Fetka)
+
+Version beta-0.8.4 for MW 1.13.2 (2008-12-03)
+- Made the patch work for MW 1.13.2 (Mario Fetka)
+- add the SpecialRestrictedPages.php
+
+Version beta-0.8.4 for MW 1.12.0 (2008-04-24)
+- Made the patch work for MW 1.12.0 (Jan Krcmar)
+
+Version beta-0.8.2 for MW 1.10.0 (2007-05-21)
+- Added UserReadRestrict function which allows users to read but not edit other users pages.
+- members of groups with ['edituser'] can edit other users pages. (Ryan Fulcher, D0li0@MW)
+
+Version beta-0.8 for MW 1.10.0 (2007-05-21)
+- Made the patch work for MW 1.10.0 (Ryan Fulcher, D0li0@MW)
+
+Version beta-0.8.1 for MW 1.7.1 (~2006-11-22)
+- Added inverse regex function, begin regex with !! to inverse the matching (134.91.37.96)
+
+Version beta-0.8 for MW 1.7.1 (2006-10-06)
+- Made the patch work for MW 1.7.1 (Jesper Zedlitz)
+
+Version beta-0.72 for MW 1.6.6/1.6.7/1.6.8 (09-01-2006)
+- Spanish translation (thanks to Victor Fari<72> from Queres tecnologias)
+- Czech translation (thanks to Michal Ciza)
+
+Version beta-0.71 for MW 1.6.6/1.6.7 (07-13-2006)
+- Two bugs in Articles.php and Skin.php (thanks to Owen, see http://conseil-recherche-innovation.net/index.php/1974/04/11/41-restrict-pages-under-mediawiki-15#c489)
+
+Version beta-0.70 for MW 1.6.6/1.6.7 (06-06-2006)
+- SQL requests are not modified anymore to check the restriction (better sustenability of the patch)
+- Now restricted pages and *regex* restricted pages are treated in the same way. So none of pages title should be listed whatever the protection mechanism choosed, nor during a search request
+- Regex restriction include the namespace, so it is now possible to restrict whole namespaces (eg. "^Talk:" restrict all talk pages)
+- Image partialy restricted (not listed but file accessible via HTTP)
+- The SpecialVersion page informs that MW is patched
+- Correction of text error on the unrestrict page (thanks to Mathaba)
+- Polish translation (thanks to Janusz 'Ency' Dorozynski)
+
+Version beta-0.64 for MW 1.6.3 (05-01-2006)
+- Bug when displaying SpecialCategories page (thanks to T O X I N)
+- Hebrew translation (thanks to Yuval Hager)
+- Bug in OutputPage.php (thanks again to Yuval Hager)
+
+Version beta-0.63 for MW 1.6.3 (04-20-2006)
+- Upgrade for 1.6.3 (thanks to Anthony for his help)
+- Russian translation (thanks to T O X I N)
+- Finnish translation (thanks to Tuomas Helin)
+
+Version beta-0.62 for MW 1.5.5/1.5.6 (02-13-2006) 1.5.7 (03-05-2006)
+- Catalan translation (thanks to Pau Cabot)
+- Small mistake (comma) in swedish translation
+
+Version beta-0.61 for MW 1.5.5/1.5.6 (01-18-2006)
+- Swedish translation (thanks to Samuel Lampa)
+- Dutch translation (thanks to Peter De Baets)
+
+Version beta-0.6 for MW 1.5.3 (12-15-2005)
+- $wgHideRestrictLog option is back
+
+Version beta-0.59 for MW 1.5.1/1.5.2 (10-31-2005)
+- Allow to restrict new pages by default ($wgRestrictNewPages option)
+- Bug : 'ArticleProtectComplete' hook function remplaced by 'ArticleRestrictComplete' (stupid mistake !)
+
+Version beta-0.58 for MW 1.5.0 (10-07-2005)
+- Restriction by regular expression test on title.
diff -Naur mediawiki-1.16.0.orig/includes/Article.php mediawiki-1.16.0/includes/Article.php
--- mediawiki-1.16.0.orig/includes/Article.php 2010-07-07 01:08:01.000000000 +0000
+++ mediawiki-1.16.0/includes/Article.php 2010-09-25 08:21:08.038562225 +0000
@@ -840,7 +840,11 @@
# Another whitelist check in case oldid is altering the title
if ( !$this->mTitle->userCanRead() ) {
wfDebug( __METHOD__ . ": denied on secondary read check\n" );
- $wgOut->loginToUse();
+ if ( $this->mTitle->isRestricted() ) {
+ $wgOut->restrictGroupRequired();
+ } else {
+ $wgOut->loginToUse();
+ }
$wgOut->output();
$wgOut->disable();
wfProfileOut( __METHOD__ );
@@ -1866,7 +1870,7 @@
* Compatibility note: this function previously returned a boolean value indicating success/failure
*/
public function doEdit( $text, $summary, $flags = 0, $baseRevId = false, $user = null ) {
- global $wgUser, $wgDBtransactions, $wgUseAutomaticEditSummaries;
+ global $wgUser, $wgDBtransactions, $wgUseAutomaticEditSummaries, $wgEnableRestrict, $wgNoRecentChangesRestrict, $wgRestrictNewPages;
# Low-level sanity check
if ( $this->mTitle->getText() == '' ) {
@@ -1982,13 +1986,15 @@
wfRunHooks( 'NewRevisionFromEditComplete', array( $this, $revision, $baseRevId, $user ) );
# Update recentchanges
if ( !( $flags & EDIT_SUPPRESS_RC ) ) {
- # Mark as patrolled if the user can do so
- $patrolled = $wgUseRCPatrol && $this->mTitle->userCan( 'autopatrol' );
- # Add RC row to the DB
- $rc = RecentChange::notifyEdit( $now, $this->mTitle, $isminor, $user, $summary,
- $this->mLatest, $this->getTimestamp(), $bot, '', $oldsize, $newsize,
- $revisionId, $patrolled
- );
+ if (!$wgEnableRestrict || !$wgNoRecentChangesRestrict || !$this->mTitle->isRestricted()) {
+ # Mark as patrolled if the user can do so
+ $patrolled = $wgUseRCPatrol && $this->mTitle->userCan( 'autopatrol' );
+ # Add RC row to the DB
+ $rc = RecentChange::notifyEdit( $now, $this->mTitle, $isminor, $user, $summary,
+ $this->mLatest, $this->getTimestamp(), $bot, '', $oldsize, $newsize,
+ $revisionId, $patrolled
+ );
+ }
# Log auto-patrolled edits
if ( $patrolled ) {
PatrolLog::record( $rc, true );
@@ -2035,7 +2041,7 @@
# Add the page record; stake our claim on this title!
# This will return false if the article already exists
- $newid = $this->insertOn( $dbw );
+ $newid = $this->insertOn( $dbw, ($wgRestrictNewPages && $wgUser->isAllowed('restrict') ? 'view=1' : '') );
if ( $newid === false ) {
$dbw->rollback();
@@ -2270,6 +2276,142 @@
}
/**
+ * Restrict a page
+ * (restrict-patch by Jerome Combaz)
+ */
+ function restrict( $limit = true ) {
+ global $wgUser, $wgOut, $wgRequest, $wgEnableRestrict;
+
+ if ( ! $wgEnableRestrict == true ) return;
+
+ if ( ! $wgUser->isAllowed('restrict') ) {
+ $wgOut->restrictGroupRequired();
+ return;
+ }
+ if ( wfReadOnly() ) {
+ $wgOut->readOnlyPage();
+ return;
+ }
+ $id = $this->mTitle->getArticleID();
+ if ( 0 == $id ) {
+ $wgOut->fatalError( wfMsg( 'badarticleerror' ) );
+ return;
+ }
+
+ $confirm = $wgRequest->wasPosted() &&
+ $wgUser->matchEditToken( $wgRequest->getVal( 'wpEditToken' ) );
+ $reason = $wgRequest->getText( 'wpReasonRestrict' );
+
+ if ( $confirm ) {
+ $dbw =& wfGetDB( DB_MASTER );
+ $dbw->update( 'page',
+ array( /* SET */
+ 'page_touched' => $dbw->timestamp(),
+ 'page_restrictions' => (string)$limit
+ ), array( /* WHERE */
+ 'page_id' => $id
+ ), 'Article::restrict'
+ );
+
+ $getredit = $this->mTitle->getRestrictions('edit');
+ $edit = "edit=".current($getredit);
+ $getrmove = $this->mTitle->getRestrictions('move');
+ $move = "move=".current($getrmove);
+ $view = ($limit ? 'view=1' : 'view=0');
+ $restrictions = implode(':', array($edit, $move, $view));
+
+ if (wfRunHooks('ArticleRestrict', array(&$this, &$wgUser, $limit == true, $reason))) {
+
+ $dbw =& wfGetDB( DB_MASTER );
+ $dbw->update( 'page',
+ array( /* SET */
+ 'page_touched' => $dbw->timestamp(),
+ 'page_restrictions' => $restrictions
+ ), array( /* WHERE */
+ 'page_id' => $id
+ ), 'Article::restrict'
+ );
+
+ wfRunHooks('ArticleRestrictComplete', array(&$this, &$wgUser, $limit == true, $reason, $moveonly));
+
+ $log = new LogPage( 'restrict' );
+ if ( $limit === '' ) {
+ $log->addEntry( 'unrestrict', $this->mTitle, $reason );
+ } else {
+ $log->addEntry( 'restrict', $this->mTitle, $reason );
+ }
+ $wgOut->redirect( $this->mTitle->getFullURL() );
+ }
+ return;
+ } else {
+ return $this->confirmRestrict( '', '', $limit );
+ }
+ }
+
+ /**
+ * Output restriction confirmation dialog
+ */
+ function confirmRestrict( $par, $reason, $limit ) {
+ global $wgOut, $wgUser;
+
+ wfDebug( "Article::confirmRestrict\n" );
+
+ $sub = htmlspecialchars( $this->mTitle->getPrefixedText() );
+ $wgOut->setRobotpolicy( 'noindex,nofollow' );
+
+ $check = '';
+ $protcom = '';
+ $moveonly = '';
+
+ if ( $limit === '' ) {
+ $wgOut->setPageTitle( wfMsg( 'confirmunrestrict' ) );
+ $wgOut->setSubtitle( wfMsg( 'unrestrictsub', $sub ) );
+ $wgOut->addWikiText( wfMsg( 'confirmunrestricttext' ) );
+ $protcom = htmlspecialchars( wfMsg( 'unrestrictcomment' ) );
+ $formaction = $this->mTitle->escapeLocalURL( 'action=unrestrict' . $par );
+ } else {
+ $wgOut->setPageTitle( wfMsg( 'confirmrestrict' ) );
+ $wgOut->setSubtitle( wfMsg( 'restrictsub', $sub ) );
+ $wgOut->addWikiText( wfMsg( 'confirmrestricttext' ) );
+ $protcom = htmlspecialchars( wfMsg( 'restrictcomment' ) );
+ $formaction = $this->mTitle->escapeLocalURL( 'action=restrict' . $par );
+ }
+
+ $confirm = htmlspecialchars( wfMsg( 'confirm' ) );
+ $token = htmlspecialchars( $wgUser->editToken() );
+
+ $wgOut->addHTML( "
+<form id='restrictconfirm' method='post' action=\"{$formaction}\">
+ <table border='0'>
+ <tr>
+ <td align='right'>
+ <label for='wpReasonRestrict'>{$protcom}:</label>
+ </td>
+ <td align='left'>
+ <input type='text' size='60' name='wpReasonRestrict' id='wpReasonRestrict' value=\"" . htmlspecialchars( $reason ) . "\" />
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <input type='submit' name='wpConfirmRestrictB' value=\"{$confirm}\" />
+ </td>
+ </tr>
+ </table>
+ <input type='hidden' name='wpEditToken' value=\"{$token}\" />
+</form>" );
+
+ $wgOut->returnToMain( false );
+ }
+
+ /**
+ * Unrestrict the pages
+ */
+ function unrestrict() {
+ return $this->restrict( '' );
+ }
+
+ /**
* Update the article's restriction field, and leave a log entry.
*
* @param $limit Array: set of restriction keys
@@ -2329,6 +2471,10 @@
$current = Article::flattenRestrictions( $current );
+ if(current($this->mTitle->getRestrictions('view'))) {
+ $updated .= ":view=1";
+ }
+
$changed = ( $changed || $current != $updated );
$changed = $changed || ( $updated && $this->mTitle->areRestrictionsCascading() != $cascade );
$protect = ( $updated != '' );
diff -Naur mediawiki-1.16.0.orig/includes/DefaultSettings.php mediawiki-1.16.0/includes/DefaultSettings.php
--- mediawiki-1.16.0.orig/includes/DefaultSettings.php 2010-07-28 07:11:03.000000000 +0000
+++ mediawiki-1.16.0/includes/DefaultSettings.php 2010-09-25 08:10:32.733716562 +0000
@@ -3183,6 +3183,7 @@
'upload',
'move',
'import',
+ 'restrict',
'patrol',
'merge',
'suppress',
@@ -3258,6 +3259,7 @@
'upload' => 'uploadlogpagetext',
'move' => 'movelogpagetext',
'import' => 'importlogpagetext',
+ 'restrict'=> 'restrictlogtext',
'patrol' => 'patrol-log-header',
'merge' => 'mergelogpagetext',
'suppress' => 'suppressionlogtext',
@@ -3277,6 +3279,8 @@
'protect/modify' => 'modifiedarticleprotection',
'protect/unprotect' => 'unprotectedarticle',
'protect/move_prot' => 'movedarticleprotection',
+ 'restrict/restrict' => 'restrictedarticle',
+ 'restrict/unrestrict'=> 'unrestrictedarticle',
'rights/rights' => 'rightslogentry',
'delete/delete' => 'deletedarticle',
'delete/restore' => 'undeletedarticle',
@@ -3796,6 +3800,56 @@
$wgRestrictDisplayTitle = true;
/**
+ *
+ * Restriction patch (by Jerome Combaz)
+ * see http://www.mediawiki.org/wiki/Extension:Page_access_restriction
+ *
+ */
+
+/**
+ * If true, a new menu action allows to restrict pages access to 'restrict' group users
+ */
+$wgEnableRestrict = false;
+
+/**
+ * If true, new pages are restricted by default for 'restrict' group users
+ */
+$wgRestrictNewPages = false;
+
+/**
+ * Restrict user pages to their owner (as well as viewrestrict/restrict members)
+ */
+$wgUserPageRestrict = false;
+
+/**
+ * when wgUserPageRestrict is enabled, still allow user pages to be read by others
+ */
+$wgUserReadRestrict = false;
+
+/**
+ * Regular expression array to restrict matching pages
+ * eg. $wgRegexRestrict = array("^Secure:", "^Secret "); // restrict all pages where title is like 'Secure:...' or 'Secret ...'
+ */
+$wgRegexRestrict = array();
+
+/**
+ * Hide recent changes entry for restricted pages
+ */
+$wgNoRecentChangesRestrict = true;
+
+/**
+ * Hide log entries related to restriction except for 'restrict' or 'viewrestrict' users (Special:Log page)
+ */
+$wgHideRestrictLog = true;
+
+/**
+ * MediaWiki permissions setup
+ */
+$wgGroupPermissions['restrict']['restrict'] =
+$wgGroupPermissions['restrict']['viewrestrict'] = true;
+$wgGroupPermissions['viewrestrict']['viewrestrict'] = true;
+
+/**
* Array of usernames which may not be registered or logged in from
* Maintenance scripts can still use these
*/
diff -Naur mediawiki-1.16.0.orig/includes/Export.php mediawiki-1.16.0/includes/Export.php
--- mediawiki-1.16.0.orig/includes/Export.php 2010-01-06 19:59:42.000000000 +0000
+++ mediawiki-1.16.0/includes/Export.php 2010-09-25 08:10:32.741716548 +0000
@@ -123,6 +123,9 @@
public function pageByName( $name ) {
$title = Title::newFromText( $name );
+ if ($title->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) {
+ return new WikiError( wfMsgHtml( 'restricttext' ) );
+ }
if( is_null( $title ) ) {
return new WikiError( "Can't export invalid title" );
} else {
diff -Naur mediawiki-1.16.0.orig/includes/LogPage.php mediawiki-1.16.0/includes/LogPage.php
--- mediawiki-1.16.0.orig/includes/LogPage.php 2010-02-22 02:15:30.000000000 +0000
+++ mediawiki-1.16.0/includes/LogPage.php 2010-09-25 08:10:32.755716523 +0000
@@ -46,7 +46,7 @@
* Constructor
*
* @param string $type One of '', 'block', 'protect', 'rights', 'delete',
- * 'upload', 'move'
+ * 'upload', 'move', 'restrict'
* @param bool $rc Whether to update recent changes as well as the logging table
* @param bool $udp Whether to send to the UDP feed if NOT sent to RC
*/
@@ -367,7 +367,7 @@
/**
* Add a log entry
- * @param string $action one of '', 'block', 'protect', 'rights', 'delete', 'upload', 'move', 'move_redir'
+ * @param string $action one of '', 'block', 'protect', 'rights', 'delete', 'upload', 'move', 'move_redir', 'restrict'
* @param object &$target A title object.
* @param string $comment Description associated
* @param array $params Parameters passed later to wfMsg.* functions
diff -Naur mediawiki-1.16.0.orig/includes/OutputPage.php mediawiki-1.16.0/includes/OutputPage.php
--- mediawiki-1.16.0.orig/includes/OutputPage.php 2010-07-27 03:34:41.000000000 +0000
+++ mediawiki-1.16.0/includes/OutputPage.php 2010-09-25 08:10:37.340708231 +0000
@@ -1786,6 +1786,22 @@
throw new MWException( "Call to deprecated OutputPage::developerRequired() method\n" );
}
+ function restrictGroupRequired() {
+ global $wgUser, $wgTitle;
+
+ $this->setPageTitle( wfMsg( 'restricttitle' ) );
+ $this->setHTMLTitle( wfMsg( 'errorpagetitle' ) );
+ $this->setRobotpolicy( 'noindex,nofollow' );
+ $this->setArticleRelated( false );
+ $this->mBodytext = '';
+
+ $sk = $wgUser->getSkin();
+ $ap = $sk->makeKnownLink( wfMsgForContent( 'administrators' ), '' );
+ $this->addHTML( wfMsg( 'restricttext', $ap ) );
+ $this->returnToMain( false );
+ }
+
+
/**
* Produce the stock "please login to use the wiki" page
*/
diff -Naur mediawiki-1.16.0.orig/includes/QueryPage.php mediawiki-1.16.0/includes/QueryPage.php
--- mediawiki-1.16.0.orig/includes/QueryPage.php 2010-01-23 20:07:17.000000000 +0000
+++ mediawiki-1.16.0/includes/QueryPage.php 2010-09-25 08:10:37.345708223 +0000
@@ -181,6 +181,7 @@
* @param $result Object: database row
*/
function formatResult( $skin, $result ) {
+ if ($nt->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) return "<em>".wfMsgHtml( 'restricttitle' )."</em>";
return '';
}
@@ -510,6 +511,7 @@
return null;
}
$title = Title::MakeTitle( intval( $row->namespace ), $row->title );
+ if ($title->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) return NULL;
if( $title ) {
$date = isset( $row->timestamp ) ? $row->timestamp : '';
$comments = '';
diff -Naur mediawiki-1.16.0.orig/includes/Skin.php mediawiki-1.16.0/includes/Skin.php
--- mediawiki-1.16.0.orig/includes/Skin.php 2010-06-29 06:43:37.000000000 +0000
+++ mediawiki-1.16.0/includes/Skin.php 2010-09-25 08:27:18.911851523 +0000
@@ -1362,7 +1362,7 @@
}
function bottomLinks() {
- global $wgOut, $wgUser, $wgUseTrackbacks;
+ global $wgOut, $wgUser, $wgUseTrackbacks, $wgEnableRestrict;
$sep = wfMsgExt( 'pipe-separator', 'escapenoentities' ) . "\n";
$s = '';
@@ -1408,6 +1408,9 @@
if( $wgUser->isAllowed( 'protect' ) ) {
$s .= $sep . $this->protectThisPage();
}
+ if( $wgEnableRestrict == true && $wgUser->isAllowed('restrict')) {
+ $s .= $sep . $this->restrictThisPage();
+ }
if( $wgUser->isAllowed( 'move' ) ) {
$s .= $sep . $this->moveThisPage();
}
@@ -1749,6 +1752,31 @@
} else {
$s = '';
}
+ return $s;
+ }
+
+ /**
+ * (restrict-patch by Jerome Combaz)
+ * @access private
+ */
+ function restrictThisPage() {
+ global $wgUser, $wgOut, $wgTitle, $wgRequest;
+
+ $diff = $wgRequest->getVal( 'diff' );
+ if ( $wgTitle->getArticleId() && ( ! $diff ) && $wgUser->isAllowed('restrict') ) {
+ $n = $wgTitle->getPrefixedText();
+
+ if ( $wgTitle->isRestricted() ) {
+ $t = wfMsg( 'unrestrictthispage' );
+ $q = 'action=unrestrict';
+ } else {
+ $t = wfMsg( 'restrictthispage' );
+ $q = 'action=restrict';
+ }
+ $s = $this->makeKnownLink( $n, $t, $q );
+ } else {
+ $s = '';
+ }
return $s;
}
diff -Naur mediawiki-1.16.0.orig/includes/SkinTemplate.php mediawiki-1.16.0/includes/SkinTemplate.php
--- mediawiki-1.16.0.orig/includes/SkinTemplate.php 2010-04-20 12:54:12.000000000 +0000
+++ mediawiki-1.16.0/includes/SkinTemplate.php 2010-09-25 08:29:10.354635408 +0000
@@ -705,7 +705,7 @@
* @private
*/
function buildContentActionUrls() {
- global $wgContLang, $wgLang, $wgOut, $wgUser, $wgRequest, $wgArticle;
+ global $wgContLang, $wgLang, $wgOut, $wgUser, $wgRequest, $wgArticle, $wgEnableRestrict;
wfProfileIn( __METHOD__ );
@@ -747,6 +747,44 @@
: wfMsg( 'create' ),
'href' => $this->mTitle->getLocalUrl( $this->editUrlOptions() )
);
+
+ // page restriction
+ if($wgEnableRestrict == true){
+ if($wgUser->isAllowed('restrict')){
+ if(!$this->mTitle->isRestricted()){
+ $content_actions['restrict'] = array(
+ 'class' => ($action == 'restrict') ? 'selected' : false,
+ 'text' => wfMsg('restrict'),
+ 'href' => $this->mTitle->getLocalUrl( 'action=restrict' )
+ );
+
+ } else {
+ if ($this->mTitle->isRegexRestricted()){
+ $content_actions['unrestrict'] = array(
+ 'class' => ($action == 'unrestrict') ? 'selected' : false,
+ 'text' => wfMsg('restricttitle'),
+ 'href' => $this->mTitle->getLocalUrl( '' )
+ );
+ } else {
+ $content_actions['unrestrict'] = array(
+ 'class' => ($action == 'unrestrict') ? 'selected' : false,
+ 'text' => wfMsg('unrestrict'),
+ 'href' => $this->mTitle->getLocalUrl( 'action=unrestrict' )
+ );
+ }
+ }
+ } else {
+ if($wgUser->isAllowed('viewrestrict')){
+ if($this->mTitle->isRestricted()){
+ $content_actions['unrestrict'] = array(
+ 'class' => ($action == 'unrestrict') ? 'selected' : false,
+ 'text' => wfMsg('restricttitle'),
+ 'href' => $this->mTitle->getLocalUrl( '' )
+ );
+ }
+ }
+ }
+ }
// adds new section link if page is a current revision of a talk page or
if ( ( $wgArticle && $wgArticle->isCurrent() && $istalk ) || $wgOut->showNewSectionLink() ) {
diff -Naur mediawiki-1.16.0.orig/includes/SpecialPage.php mediawiki-1.16.0/includes/SpecialPage.php
--- mediawiki-1.16.0.orig/includes/SpecialPage.php 2010-01-15 17:28:40.000000000 +0000
+++ mediawiki-1.16.0/includes/SpecialPage.php 2010-09-25 08:10:37.396708130 +0000
@@ -199,8 +199,8 @@
*/
static function initList() {
global $wgSpecialPages;
- global $wgDisableCounters, $wgDisableInternalSearch, $wgEmailAuthentication;
-
+ global $wgDisableCounters, $wgDisableInternalSearch, $wgEmailAuthentication, $wgEnableRestrict;
+
if ( self::$mListInitialised ) {
return;
}
@@ -222,6 +222,10 @@
self::$mList['Invalidateemail'] = 'EmailInvalidation';
}
+ if( $wgEnableRestrict ) {
+ self::$mList['Restrictedpages'] = array('SpecialPage', 'Restrictedpages' );
+ }
+
# Add extension special pages
self::$mList = array_merge( self::$mList, $wgSpecialPages );
diff -Naur mediawiki-1.16.0.orig/includes/Title.php mediawiki-1.16.0/includes/Title.php
--- mediawiki-1.16.0.orig/includes/Title.php 2010-02-12 21:45:14.000000000 +0000
+++ mediawiki-1.16.0/includes/Title.php 2010-09-25 08:10:37.406708113 +0000
@@ -1038,7 +1038,16 @@
* @return \type{\bool}
*/
public function isNamespaceProtected() {
- global $wgNamespaceProtection, $wgUser;
+ global $wgNamespaceProtection, $wgUser, $wgUserPageRestrict;
+
+ if ( $wgUserPageRestrict == true ) {
+ if ( $this->getNamespace() == NS_USER && ! (substr_count($this->getText(), $wgUser->getName()))) {
+ if ( ( ! $wgUser->isAllowed('viewrestrict') ) && ( ! $wgUser->isAllowed('edituser') ) ) {
+ return false;
+ }
+ }
+ }
+
if( isset( $wgNamespaceProtection[ $this->mNamespace ] ) ) {
foreach( (array)$wgNamespaceProtection[ $this->mNamespace ] as $right ) {
if( $right != '' && !$wgUser->isAllowed( $right ) )
@@ -1401,7 +1410,39 @@
wfProfileOut( __METHOD__ );
return $errors;
}
+
+ /*
+ * Does the title correspond to a restricted article?
+ * (restrict-patch by Jerome Combaz)
+ * @return boolean
+ * @access public
+ */
+ function isRestricted() {
+ global $wgEnableRestrict;
+ if ( $wgEnableRestrict == true ) {
+ $a = $this->getRestrictions("view");
+ if ( $this->isRegexRestricted() || (!empty($a) && $a[0] == true) ) return true;
+ }
+ return false;
+ }
+ function isRegexRestricted() {
+ global $wgEnableRestrict, $wgRegexRestrict;
+ if ( $wgEnableRestrict == true ) {
+ foreach ( $wgRegexRestrict as $k=>$v ) {
+ // Reverse restriction START
+ // If an entry starts with "!!" and the remaining string matches the namespace,
+ // the page is NOT restricted
+ if (substr($v, 0, 2) == "!!") {
+ if (ereg (substr($v, 2), $this->makeName( $this->mNamespace, $this->mTextform) ) ) return false;
+ } else
+ // Reverse restriction END
+ if ( ereg ( $v, $this->makeName( $this->mNamespace, $this->mTextform) ) ) return true;
+ }
+ }
+ return false;
+ }
+
/**
* Is this title subject to title protection?
* @return \type{\mixed} An associative array representing any existent title
@@ -1519,7 +1560,7 @@
* @todo fold these checks into userCan()
*/
public function userCanRead() {
- global $wgUser, $wgGroupPermissions;
+ global $wgUser, $wgGroupPermissions, $wgUserPageRestrict, $wgUserReadRestrict, $wgUserPagePrivate;
static $useShortcut = null;
@@ -1553,6 +1594,32 @@
return $result;
}
+ // restricted page ?
+ if ( $this->isRestricted() && ! $wgUser->isAllowed('viewrestrict') ) {
+ return false;
+ }
+
+ // restricted user pages ?
+ if ( $wgUserPageRestrict == true ) {
+ if ( $wgUserReadRestrict == false ) {
+ if ( $this->getNamespace() == NS_USER && $wgUser->getName() != $this->getText() ) {
+ if ( ! $wgUser->isAllowed('viewrestrict') ) {
+ return false;
+ }
+ }
+ } else {
+ if ( $this->getNamespace() == NS_USER && $wgUser->getName() != $this->getText() ) {
+ if ($wgUserPagePrivate) {
+ foreach ( $wgUserPagePrivate as $k=>$v ) {
+ if ( ereg (substr($v, 2), $this->makeName( $this->mNamespace, $this->mTextform) )
+ && ! (substr_count($this->getText(), $wgUser->getName() ) ) )
+ return false;
+ }
+ }
+ }
+ }
+ }
+
# Shortcut for public wikis, allows skipping quite a bit of code
if ( $useShortcut )
return true;
diff -Naur mediawiki-1.16.0.orig/includes/User.php mediawiki-1.16.0/includes/User.php
--- mediawiki-1.16.0.orig/includes/User.php 2010-04-07 00:10:48.000000000 +0000
+++ mediawiki-1.16.0/includes/User.php 2010-09-25 08:10:37.416708094 +0000
@@ -162,6 +162,7 @@
'override-export-depth',
'patrol',
'protect',
+ 'restrict',
'proxyunbannable',
'purge',
'read',
diff -Naur mediawiki-1.16.0.orig/includes/Wiki.php mediawiki-1.16.0/includes/Wiki.php
--- mediawiki-1.16.0.orig/includes/Wiki.php 2010-01-17 18:25:44.000000000 +0000
+++ mediawiki-1.16.0/includes/Wiki.php 2010-09-25 08:29:50.257558036 +0000
@@ -157,7 +157,11 @@
# catch special pages etc. We check again in Article::view())
if( !is_null( $title ) && !$title->userCanRead() ) {
global $wgDeferredUpdateList;
- $output->loginToUse();
+ if ( $title->isRestricted() ) {
+ $output->restrictGroupRequired();
+ } else {
+ $output->loginToUse();
+ }
$this->finalCleanup( $wgDeferredUpdateList, $output );
$output->disable();
return false;
@@ -505,6 +509,8 @@
case 'rollback':
case 'protect':
case 'unprotect':
+ case 'restrict':
+ case 'unrestrict':
case 'info':
case 'markpatrolled':
case 'render':
diff -Naur mediawiki-1.16.0.orig/includes/parser/Parser.php mediawiki-1.16.0/includes/parser/Parser.php
--- mediawiki-1.16.0.orig/includes/parser/Parser.php 2010-05-12 02:12:12.000000000 +0000
+++ mediawiki-1.16.0/includes/parser/Parser.php 2010-09-25 08:10:37.450708034 +0000
@@ -2985,7 +2985,7 @@
wfDebug( __METHOD__.": template inclusion denied for " . $title->getPrefixedDBkey() );
} else {
list( $text, $title ) = $this->getTemplateDom( $title );
- if ( $text !== false ) {
+ if ( $text !== false && $title->userCanRead() ) {
$found = true;
$isChildObj = true;
}
@@ -3103,9 +3103,14 @@
if ( isset( $this->mTplDomCache[$titleText] ) ) {
return array( $this->mTplDomCache[$titleText], $title );
}
-
- // Cache miss, go to the database
- list( $text, $title ) = $this->fetchTemplateAndTitle( $title );
+
+ // page restriction
+ if (!$title->userCanRead()) {
+ $text = false;
+ } else {
+ // Cache miss, go to the database
+ list( $text, $title ) = $this->fetchTemplateAndTitle( $title );
+ }
if ( $text === false ) {
$this->mTplDomCache[$titleText] = false;
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialAllpages.php mediawiki-1.16.0/includes/specials/SpecialAllpages.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialAllpages.php 2009-12-11 21:07:27.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialAllpages.php 2010-09-25 08:39:04.700483450 +0000
@@ -305,21 +305,23 @@
$out = Xml::openElement( 'table', array( 'class' => 'mw-allpages-table-chunk' ) );
while( ( $n < $this->maxPerPage ) && ( $s = $res->fetchObject() ) ) {
$t = Title::makeTitle( $s->page_namespace, $s->page_title );
- if( $t ) {
- $link = ( $s->page_is_redirect ? '<div class="allpagesredirect">' : '' ) .
- $sk->linkKnown( $t, htmlspecialchars( $t->getText() ) ) .
- ($s->page_is_redirect ? '</div>' : '' );
- } else {
- $link = '[[' . htmlspecialchars( $s->page_title ) . ']]';
- }
- if( $n % 3 == 0 ) {
- $out .= '<tr>';
- }
- $out .= "<td width=\"33%\">$link</td>";
- $n++;
- if( $n % 3 == 0 ) {
- $out .= "</tr>\n";
- }
+ if (! $GLOBALS['wgEnableRestrict'] or ! $t->isRestricted() or $wgUser->isAllowed('viewrestrict')) {
+ if( $t ) {
+ $link = ( $s->page_is_redirect ? '<div class="allpagesredirect">' : '' ) .
+ $sk->linkKnown( $t, htmlspecialchars( $t->getText() ) ) .
+ ($s->page_is_redirect ? '</div>' : '' );
+ } else {
+ $link = '[[' . htmlspecialchars( $s->page_title ) . ']]';
+ }
+ if( $n % 3 == 0 ) {
+ $out .= '<tr>';
+ }
+ $out .= "<td width=\"33%\">$link</td>";
+ $n++;
+ if( $n % 3 == 0 ) {
+ $out .= "</tr>\n";
+ }
+ } // restrict patch
}
if( ($n % 3) != 0 ) {
$out .= "</tr>\n";
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialAncientpages.php mediawiki-1.16.0/includes/specials/SpecialAncientpages.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialAncientpages.php 2009-08-17 00:59:25.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialAncientpages.php 2010-09-25 08:41:08.118244365 +0000
@@ -63,6 +63,7 @@
$d = $wgLang->timeanddate( wfTimestamp( TS_MW, $result->value ), true );
$title = Title::makeTitle( $result->namespace, $result->title );
+ if ($GLOBALS['wgEnableRestrict'] and $title->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) return "<em>".wfMsgHtml( 'restricttitle' )."</em>";
$link = $skin->linkKnown(
$title,
htmlspecialchars( $wgContLang->convert( $title->getPrefixedText() ) )
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialBrokenRedirects.php mediawiki-1.16.0/includes/specials/SpecialBrokenRedirects.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialBrokenRedirects.php 2009-06-13 00:02:31.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialBrokenRedirects.php 2010-09-25 08:52:21.056941410 +0000
@@ -64,19 +64,36 @@
return '<s>' . $skin->link( $fromObj ) . '</s>';
}
- $from = $skin->linkKnown(
- $fromObj,
- null,
- array(),
- array( 'redirect' => 'no' )
- );
- $links = array();
- $links[] = $skin->linkKnown(
- $fromObj,
- wfMsgHtml( 'brokenredirects-edit' ),
- array(),
- array( 'action' => 'edit' )
- );
+ if ($GLOBALS['wgEnableRestrict'] and $fromObj->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) {
+ $from = $skin->linkKnown(
+ $fromObj,
+ "<em>".wfMsgHtml( 'restricttitle' )."</em>",
+ array(),
+ array()
+ );
+ $links = array();
+ $links[] = $skin->linkKnown(
+ $fromObj,
+ null,
+ array(),
+ array()
+ );
+ } else {
+ $from = $skin->linkKnown(
+ $fromObj,
+ null,
+ array(),
+ array( 'redirect' => 'no' )
+ );
+ $links = array();
+ $links[] = $skin->linkKnown(
+ $fromObj,
+ wfMsgHtml( 'brokenredirects-edit' ),
+ array(),
+ array( 'action' => 'edit' )
+ );
+ }
+
$to = $skin->link(
$toObj,
null,
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialCategories.php mediawiki-1.16.0/includes/specials/SpecialCategories.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialCategories.php 2009-10-09 12:52:16.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialCategories.php 2010-09-25 08:54:08.605733269 +0000
@@ -87,6 +87,7 @@
function formatRow($result) {
global $wgLang;
$title = Title::makeTitle( NS_CATEGORY, $result->cat_title );
+ if ($GLOBALS['wgEnableRestrict'] and $title->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) return "<em>".wfMsgHtml( 'restricttitle' )."</em>";
$titleText = $this->getSkin()->link( $title, htmlspecialchars( $title->getText() ) );
$count = wfMsgExt( 'nmembers', array( 'parsemag', 'escape' ),
$wgLang->formatNum( $result->cat_pages ) );
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialContributions.php mediawiki-1.16.0/includes/specials/SpecialContributions.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialContributions.php 2010-05-12 02:12:12.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialContributions.php 2010-10-22 14:01:28.818268360 +0000
@@ -551,12 +551,21 @@
$page = Title::newFromRow( $row );
$page->resetArticleId( $row->rev_page ); // use process cache
- $link = $sk->link(
- $page,
- htmlspecialchars( $page->getPrefixedText() ),
- array(),
- $page->isRedirect() ? array( 'redirect' => 'no' ) : array()
- );
+ if ($GLOBALS['wgEnableRestrict'] and $page->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) {
+ $link = $sk->link(
+ $page,
+ "<em>".wfMsgHtml( 'restricttitle' )."</em>",
+ array(),
+ array()
+ );
+ } else {
+ $link = $sk->link(
+ $page,
+ htmlspecialchars( $page->getPrefixedText() ),
+ array(),
+ $page->isRedirect() ? array( 'redirect' => 'no' ) : array()
+ );
+ }
# Mark current revisions
$difftext = $topmarktext = '';
if( $row->rev_id == $row->page_latest ) {
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialDisambiguations.php mediawiki-1.16.0/includes/specials/SpecialDisambiguations.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialDisambiguations.php 2009-07-21 12:31:51.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialDisambiguations.php 2010-09-25 09:05:09.912318296 +0000
@@ -87,11 +87,19 @@
$title = Title::newFromID( $result->value );
$dp = Title::makeTitle( $result->namespace, $result->title );
- $from = $skin->link( $title );
- $edit = $skin->link( $title, wfMsgExt( 'parentheses', array( 'escape' ), wfMsg( 'editlink' ) ) , array(), array( 'redirect' => 'no', 'action' => 'edit' ) );
+ if ($GLOBALS['wgEnableRestrict'] and $title->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) {
+ $from = "<em>".wfMsgHtml( 'restricttitle' )."</em>";
+ $edit ="";
+ } else {
+ $from = $skin->link( $title );
+ $edit = $skin->link( $title, wfMsgExt( 'parentheses', array( 'escape' ), wfMsg( 'editlink' ) ) , array(), array( 'redirect' => 'no', 'action' => 'edit' ) );
+ }
$arr = $wgContLang->getArrow();
- $to = $skin->link( $dp );
-
+ if ($GLOBALS['wgEnableRestrict'] and $dp->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) {
+ $to = "<em>".wfMsgHtml( 'restricttitle' )."</em>";
+ } else {
+ $to = $skin->link( $dp );
+ }
return "$from $edit $arr $to";
}
}
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialDoubleRedirects.php mediawiki-1.16.0/includes/specials/SpecialDoubleRedirects.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialDoubleRedirects.php 2009-07-21 12:17:32.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialDoubleRedirects.php 2010-09-25 08:10:37.511707922 +0000
@@ -23,6 +23,7 @@
}
function getSQLText( &$dbr, $namespace = null, $title = null ) {
+ global $wgEnableRestrict, $wgUser;
list( $page, $redirect ) = $dbr->tableNamesN( 'page', 'redirect' );
@@ -38,7 +39,8 @@
" AND ra.rd_title=pb.page_title" .
" AND rb.rd_from=pb.page_id" .
" AND rb.rd_namespace=pc.page_namespace" .
- " AND rb.rd_title=pc.page_title";
+ " AND rb.rd_title=pc.page_title" .
+ (($wgEnableRestrict == true and ! $wgUser->isAllowed('viewrestrict') ) ? " AND pa.page_restrictions NOT LIKE '%view=1%'" : "");
if( $limitToTitle ) {
$encTitle = $dbr->addQuotes( $title );
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialListredirects.php mediawiki-1.16.0/includes/specials/SpecialListredirects.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialListredirects.php 2009-05-08 23:24:31.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialListredirects.php 2010-09-25 09:06:45.357107813 +0000
@@ -32,6 +32,7 @@
# Make a link to the redirect itself
$rd_title = Title::makeTitle( $result->namespace, $result->title );
+ if ($GLOBALS['wgEnableRestrict'] and $rd_title->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) return "<em>".wfMsgHtml( 'restricttitle' )."</em>";
$rd_link = $skin->link(
$rd_title,
null,
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialLog.php mediawiki-1.16.0/includes/specials/SpecialLog.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialLog.php 2009-10-15 11:36:30.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialLog.php 2010-09-25 08:10:37.523707901 +0000
@@ -26,9 +26,9 @@
* constructor
*/
function wfSpecialLog( $par = '' ) {
- global $wgRequest, $wgOut, $wgUser, $wgLogTypes;
-
+ global $wgRequest, $wgOut, $wgUser, $wgLogTypes, $wgEnableRestrict, $wgHideRestrictLog;
# Get parameters
+ if ( ($wgEnableRestrict and $wgHideRestrictLog == true and !($wgUser->isAllowed('restrict') || $wgUser->isAllowed('viewrestrict'))) or ! $wgEnableRestrict ) $this->whereClauses[] = 'log_type != "restrict"';
$parms = explode( '/', ($par = ( $par !== null ) ? $par : '' ) );
$symsForAll = array( '*', 'all' );
if ( $parms[0] != '' && ( in_array( $par, $wgLogTypes ) || in_array( $par, $symsForAll ) ) ) {
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialMIMEsearch.php mediawiki-1.16.0/includes/specials/SpecialMIMEsearch.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialMIMEsearch.php 2009-07-13 10:34:31.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialMIMEsearch.php 2010-09-25 08:10:37.528707891 +0000
@@ -64,6 +64,7 @@
global $wgContLang, $wgLang;
$nt = Title::makeTitle( $result->namespace, $result->title );
+ if ($GLOBALS['wgEnableRestrict'] and $nt->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) return "<em>".wfMsgHtml( 'restricttitle' )."</em>";
$text = $wgContLang->convert( $nt->getText() );
$plink = $skin->link(
Title::newFromText( $nt->getPrefixedText() ),
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialMostcategories.php mediawiki-1.16.0/includes/specials/SpecialMostcategories.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialMostcategories.php 2008-09-08 22:08:39.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialMostcategories.php 2010-09-25 08:10:37.532707884 +0000
@@ -39,7 +39,7 @@
function formatResult( $skin, $result ) {
global $wgLang;
$title = Title::makeTitleSafe( $result->namespace, $result->title );
-
+ if ($GLOBALS['wgEnableRestrict'] and $titel->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) return "<em>".wfMsgHtml( 'restricttitle' )."</em>";
$count = wfMsgExt( 'ncategories', array( 'parsemag', 'escape' ), $wgLang->formatNum( $result->value ) );
$link = $skin->link( $title );
return wfSpecialList( $link, $count );
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialMostlinked.php mediawiki-1.16.0/includes/specials/SpecialMostlinked.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialMostlinked.php 2010-02-08 20:41:05.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialMostlinked.php 2010-09-25 09:08:05.381931632 +0000
@@ -89,6 +89,7 @@
function formatResult( $skin, $result ) {
global $wgLang;
$title = Title::makeTitleSafe( $result->namespace, $result->title );
+ if ($GLOBALS['wgEnableRestrict'] and $title->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) return "<em>".wfMsgHtml( 'restricttitle' )."</em>";
if ( !$title ) {
return '<!-- ' . htmlspecialchars( "Invalid title: [[$title]]" ) . ' -->';
}
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialMostlinkedcategories.php mediawiki-1.16.0/includes/specials/SpecialMostlinkedcategories.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialMostlinkedcategories.php 2009-05-08 23:24:31.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialMostlinkedcategories.php 2010-09-25 08:10:37.546707859 +0000
@@ -56,6 +56,7 @@
global $wgLang, $wgContLang;
$nt = Title::makeTitle( $result->namespace, $result->title );
+ if ($GLOBALS['wgEnableRestrict'] and $nt->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) return "<em>".wfMsgHtml( 'restricttitle' )."</em>";
$text = $wgContLang->convert( $nt->getText() );
$plink = $skin->link( $nt, htmlspecialchars( $text ) );
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialMostrevisions.php mediawiki-1.16.0/includes/specials/SpecialMostrevisions.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialMostrevisions.php 2009-06-07 18:45:52.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialMostrevisions.php 2010-09-25 08:10:37.551707849 +0000
@@ -40,6 +40,7 @@
global $wgLang, $wgContLang;
$nt = Title::makeTitle( $result->namespace, $result->title );
+ if ($GLOBALS['wgEnableRestrict'] and $nt->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) return "<em>".wfMsgHtml( 'restricttitle' )."</em>";
$text = $wgContLang->convert( $nt->getPrefixedText() );
$plink = $skin->linkKnown( $nt, $text );
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialNewimages.php mediawiki-1.16.0/includes/specials/SpecialNewimages.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialNewimages.php 2010-02-13 23:58:30.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialNewimages.php 2010-09-25 09:09:54.586691637 +0000
@@ -127,7 +127,10 @@
$nt = Title::newFromText( $name, NS_FILE );
$ul = $sk->link( Title::makeTitle( NS_USER, $ut ), $ut );
- $gallery->add( $nt, "$ul<br />\n<i>".htmlspecialchars($wgLang->timeanddate( $s->img_timestamp, true ))."</i><br />\n" );
+ // page restrict
+ if (! $GLOBALS['wgEnableRestrict'] or ! $nt->isRestricted() or $GLOBALS['wgUser']->isAllowed('viewrestrict')) {
+ $gallery->add( $nt, "$ul<br />\n<i>".htmlspecialchars($wgLang->timeanddate( $s->img_timestamp, true ))."</i><br />\n" );
+ }
$timestamp = wfTimestamp( TS_MW, $s->img_timestamp );
if( empty( $firstTimestamp ) ) {
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialNewpages.php mediawiki-1.16.0/includes/specials/SpecialNewpages.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialNewpages.php 2009-12-11 21:07:27.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialNewpages.php 2010-09-25 09:11:19.856504576 +0000
@@ -251,6 +251,7 @@
$dm = $wgContLang->getDirMark();
$title = Title::makeTitleSafe( $result->rc_namespace, $result->rc_title );
+ if ($GLOBALS['wgEnableRestrict'] and $title->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) return "<em>".wfMsgHtml( 'restricttitle' )."</em>";
$time = htmlspecialchars( $wgLang->timeAndDate( $result->rc_timestamp, true ) );
$query = array( 'redirect' => 'no' );
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialPopularpages.php mediawiki-1.16.0/includes/specials/SpecialPopularpages.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialPopularpages.php 2009-06-07 18:45:52.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialPopularpages.php 2010-09-25 09:12:57.559290594 +0000
@@ -48,6 +48,7 @@
function formatResult( $skin, $result ) {
global $wgLang, $wgContLang;
$title = Title::makeTitle( $result->namespace, $result->title );
+ if ($GLOBALS['wgEnableRestrict'] and $title->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) return "<em>".wfMsgHtml( 'restricttitle' )."</em>";
$link = $skin->linkKnown(
$title,
htmlspecialchars( $wgContLang->convert( $title->getPrefixedText() ) )
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialPrefixindex.php mediawiki-1.16.0/includes/specials/SpecialPrefixindex.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialPrefixindex.php 2009-10-21 19:53:03.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialPrefixindex.php 2010-09-25 09:53:09.446576654 +0000
@@ -134,15 +134,19 @@
while( ( $n < $this->maxPerPage ) && ( $s = $res->fetchObject() ) ) {
$t = Title::makeTitle( $s->page_namespace, $s->page_title );
- if( $t ) {
- $link = ($s->page_is_redirect ? '<div class="allpagesredirect">' : '' ) .
- $sk->linkKnown(
- $t,
- htmlspecialchars( $t->getText() )
- ) .
- ($s->page_is_redirect ? '</div>' : '' );
+ if ($GLOBALS['wgEnableRestrict'] and $t->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) {
+ $link = "<em>".wfMsgHtml( 'restricttitle' )."</em>";
} else {
- $link = '[[' . htmlspecialchars( $s->page_title ) . ']]';
+ if( $t ) {
+ $link = ($s->page_is_redirect ? '<div class="allpagesredirect">' : '' ) .
+ $sk->linkKnown(
+ $t,
+ htmlspecialchars( $t->getText() )
+ ) .
+ ($s->page_is_redirect ? '</div>' : '' );
+ } else {
+ $link = '[[' . htmlspecialchars( $s->page_title ) . ']]';
+ }
}
if( $n % 3 == 0 ) {
$out .= '<tr>';
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialRandompage.php mediawiki-1.16.0/includes/specials/SpecialRandompage.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialRandompage.php 2009-08-17 15:23:51.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialRandompage.php 2010-09-25 08:10:37.945707138 +0000
@@ -41,7 +41,7 @@
$title = $this->getRandomTitle();
- if( is_null( $title ) ) {
+ if( is_null( $title ) || ($GLOBALS['wgEnableRestrict'] and $title->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) ) {
$this->setHeaders();
$wgOut->addWikiMsg( strtolower( $this->mName ) . '-nopages',
$this->getNsList(), count( $this->namespaces ) );
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialRecentchangeslinked.php mediawiki-1.16.0/includes/specials/SpecialRecentchangeslinked.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialRecentchangeslinked.php 2010-02-10 04:13:43.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialRecentchangeslinked.php 2010-09-25 09:14:43.840058242 +0000
@@ -51,7 +51,7 @@
return false;
}
$title = Title::newFromURL( $target );
- if( !$title || $title->getInterwiki() != '' ){
+ if( !$title || ($GLOBALS['wgEnableRestrict'] and $title->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) || $title->getInterwiki() != '' ){
$wgOut->wrapWikiMsg( "<div class=\"errorbox\">\n$1</div><br style=\"clear: both\" />", 'allpagesbadtitle' );
return false;
}
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialRestrictedpages.php mediawiki-1.16.0/includes/specials/SpecialRestrictedpages.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialRestrictedpages.php 1970-01-01 00:00:00.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialRestrictedpages.php 2010-09-25 08:10:38.300706497 +0000
@@ -0,0 +1,80 @@
+<?php
+/**
+ *
+ * @package MediaWiki
+ * @subpackage SpecialPage
+ */
+
+/**
+ *
+ */
+require_once( 'QueryPage.php' );
+
+/**
+ *
+ * @package MediaWiki
+ * @subpackage SpecialPage
+ */
+class RestrictedPagesPage extends QueryPage {
+
+ function getName() {
+ return "Restrictedpages";
+ }
+
+ function isExpensive() {
+ return false;
+ }
+
+ function isSyndicated() { return false; }
+
+ function getPageHeader() {
+ global $wgRegexRestrict;
+
+ $string = '<p>'.wfMsg('restrictedpagespagetext');
+ if (! empty($wgRegexRestrict) ) {
+ $string .= "</p>\n<p>".wfMsg('regexrestrictedpagespagetext');
+ foreach( $wgRegexRestrict as $k => $v ) $string .= "<strong>{$v}</strong>, ";
+ $string = substr( $string, 0, -2);
+ }
+
+ $string .= "</p>\n<br />";
+
+ return $string;
+ }
+
+ function getSQL() {
+ global $wgEnableRestrict, $wgUser;
+
+ $db =& wfGetDB( DB_SLAVE );
+ $page = $db->tableName( 'page' );
+ return
+ "SELECT 'Restrictedpages' as type,
+ page_namespace as namespace,
+ page_title as title,
+ page_title as value
+ FROM $page
+ WHERE page_namespace=".NS_MAIN." AND page_is_redirect=0 AND page_restrictions LIKE '%view=1%'";
+ }
+
+ function sortDescending() {
+ return false;
+ }
+
+ function formatResult( $skin, $result ) {
+ global $wgLang, $wgContLang;
+
+ $d = $wgLang->timeanddate( wfTimestamp( TS_MW, $result->value ), true );
+ $link = $skin->makeKnownLink( $result->title, $wgContLang->convert( $result->title) );
+ return "{$link} ({$d})";
+ }
+}
+
+function wfSpecialRestrictedpages() {
+ list( $limit, $offset ) = wfCheckLimits();
+
+ $app = new RestrictedPagesPage();
+
+ $app->doQuery( $offset, $limit );
+}
+
+?>
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialSearch.php mediawiki-1.16.0/includes/specials/SpecialSearch.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialSearch.php 2010-01-27 03:06:56.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialSearch.php 2010-09-25 09:17:25.563664424 +0000
@@ -444,6 +444,7 @@
$sk = $wgUser->getSkin();
$t = $result->getTitle();
+ if ($GLOBALS['wgEnableRestrict'] and $t->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) return "<li><em>".wfMsgHtml( 'restricttitle' )."</em></li>\n";
$titleSnippet = $result->getTitleSnippet($terms);
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialShortpages.php mediawiki-1.16.0/includes/specials/SpecialShortpages.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialShortpages.php 2009-06-07 18:45:52.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialShortpages.php 2010-09-25 08:10:38.341706421 +0000
@@ -71,6 +71,7 @@
$dm = $wgContLang->getDirMark();
$title = Title::makeTitleSafe( $result->namespace, $result->title );
+ if ($GLOBALS['wgEnableRestrict'] and $title->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) return "<em>".wfMsgHtml( 'restricttitle' )."</em>";
if ( !$title ) {
return '<!-- Invalid title ' . htmlspecialchars( "{$result->namespace}:{$result->title}" ). '-->';
}
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialUnusedcategories.php mediawiki-1.16.0/includes/specials/SpecialUnusedcategories.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialUnusedcategories.php 2009-05-08 23:24:31.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialUnusedcategories.php 2010-09-25 09:19:19.944382376 +0000
@@ -34,6 +34,7 @@
function formatResult( $skin, $result ) {
$title = Title::makeTitle( NS_CATEGORY, $result->title );
+ if ($GLOBALS['wgEnableRestrict'] and $title->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) return "<em>".wfMsgHtml( 'restricttitle' )."</em>";
return $skin->link( $title, $title->getText() );
}
}
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialUnwatchedpages.php mediawiki-1.16.0/includes/specials/SpecialUnwatchedpages.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialUnwatchedpages.php 2009-06-07 19:08:06.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialUnwatchedpages.php 2010-09-25 08:10:38.348706409 +0000
@@ -42,6 +42,7 @@
global $wgContLang;
$nt = Title::makeTitle( $result->namespace, $result->title );
+ if ($GLOBALS['wgEnableRestrict'] and $nt->isRestricted() and ! $GLOBALS['wgUser']->isAllowed('viewrestrict')) return "<em>".wfMsgHtml( 'restricttitle' )."</em>";
$text = $wgContLang->convert( $nt->getPrefixedText() );
$plink = $skin->linkKnown(
diff -Naur mediawiki-1.16.0.orig/includes/specials/SpecialVersion.php mediawiki-1.16.0/includes/specials/SpecialVersion.php
--- mediawiki-1.16.0.orig/includes/specials/SpecialVersion.php 2010-02-06 01:50:30.000000000 +0000
+++ mediawiki-1.16.0/includes/specials/SpecialVersion.php 2010-09-25 09:22:32.750909973 +0000
@@ -115,7 +115,7 @@
foreach( $software as $name => $version ) {
$out .= "<tr>
<td>" . $name . "</td>
- <td>" . $version . "</td>
+ <td>" . $version . " (patched to enable [http://www.mediawiki.org/wiki/Extension:Page_access_restriction page accessrestriction])</td>
</tr>\n";
}
return $out . Xml::closeElement( 'table' );
diff -Naur mediawiki-1.16.0.orig/languages/messages/MessagesCa.php mediawiki-1.16.0/languages/messages/MessagesCa.php
--- mediawiki-1.16.0.orig/languages/messages/MessagesCa.php 2010-07-27 20:05:07.000000000 +0000
+++ mediawiki-1.16.0/languages/messages/MessagesCa.php 2010-09-25 08:10:38.421706276 +0000
@@ -2672,6 +2672,35 @@
'math_bad_output' => "No ha estat possible crear el directori d'eixida de math o escriure-hi dins.",
'math_notexvc' => "No s'ha trobat el fitxer executable ''texvc''; si us plau, vegeu math/README per a configurar-lo.",
+# Traducció del pedaç de les restriccions
+# http://www.mediawiki.org/wiki/Extension:Page_access_restriction
+# http://conseil-recherche-innovation.net/index.php/1974/04/11/41-restrict-pages-under-mediawiki-15
+# Pau 05-02-06
+'restrict' => 'Restringeix',
+'restrictthispage' => 'Restringeix aquesta pàgina',
+'unrestrict' => 'Desrentringeix',
+'unrestrictthispage' => 'Permet el lliure accés aquesta pàgina',
+'restricttitle' => 'Pàgina restringida',
+'restricttext' => 'Aquesta pàgina és restringida. Per veure-la, heu d\'esser membres del grup \'restrict\' o del grup \'viewrestrict\'.',
+'restrictedpages' => 'Pàgines restringides',
+'restrictlogpage' => 'Log_restriccions',
+'restrictlogtext' => 'A continuació, teniu una llista de restriccions de pàgina. Vegeu [[{{ns:4}}:Restricted page]] per més informació.',
+'restrictedarticle' => '[[$1]] restringida',
+'unrestrictedarticle' => '[[$1]] desrentringida',
+'restrictsub' => '(Restringeix \'[[$1]]\')',
+'confirmrestrict' => 'Confirma la restricció',
+'confirmrestricttext' => 'Segur que voleu restringir aquesta pàgina?',
+'restrictcomment' => 'Raó per la restricció',
+'unrestrictsub' => '(Desrestringeix \'[[$1]]\')',
+'confirmunrestricttext' => 'Segur que voleu desrestringir aquesta pàgina?',
+'confirmunrestrict' => 'Confirmeu la desrestricció',
+'unrestrictcomment' => 'Raó per la desrestricció',
+'restrictreason' => '(doneu una raó)',
+'tooltip-restrict' => 'Restringeix aquesta pàgina',
+'notallowedtomoverestrictedpagetext' => 'Per moure aquesta pàgina, heu de ser membre del grup \'restrict\'.',
+'restrictedpagespagetext' => 'Aquesta pàgina llista totes les pàgines restringides del wiki. ',
+'regexrestrictedpagespagetext' => 'Totes les pàgines amb títols que compleixin aquesta/aquestes expressió(ns) regulars també seran restringides: ',
+
# Patrolling
'markaspatrolleddiff' => 'Marca com a supervisat',
'markaspatrolledtext' => 'Marca la pàgina com a supervisada',
diff -Naur mediawiki-1.16.0.orig/languages/messages/MessagesCs.php mediawiki-1.16.0/languages/messages/MessagesCs.php
--- mediawiki-1.16.0.orig/languages/messages/MessagesCs.php 2010-07-27 20:05:07.000000000 +0000
+++ mediawiki-1.16.0/languages/messages/MessagesCs.php 2010-09-25 09:25:38.849457476 +0000
@@ -634,6 +634,32 @@
'page-atom-feed' => 'Atom kanál stránky „$1“',
'red-link-title' => '$1 (stránka neexistuje)',
+#Restrict patch (http://www.mediawiki.org/wiki/Extension:Page_access_restriction)
+'restrict' => 'Omezit přístup',
+'restrictthispage' => 'Omezit přístup na tuto stránku',
+'unrestrict' => 'Zveřejnit',
+'unrestrictthispage' => 'Zveřejnit tuto stránku',
+'restricttitle' => 'Stránka s omezeným přístupem',
+'restricttext' => 'Na tuto stránku je omezený přístup. Zřejmě nemáte oprávnění k jejímu čtení',
+'restrictedpages' => 'Stránky s omezeným přístupem',
+'restrictlogpage' => 'Restriction_log',
+'restrictlogtext' => 'Zde je seznam omezení stránky. Pro více informací se podívejte na [[{{ns:4}}:Restricted page]] .',
+'restrictedarticle' => 'omezený [[$1]]',
+'unrestrictedarticle' => 'neomezený [[$1]]',
+'restrictsub' => '(Omezit přístup \'[[$1]]\')',
+'confirmrestrict' => 'Potvrzení omezení přístupu',
+'confirmrestricttext' => 'Opravdu chcete omezit přístup k této stránce?',
+'restrictcomment' => 'Důvod pro omezení',
+'unrestrictsub' => '(Neomezovat \'[[$1]]\')',
+'confirmunrestricttext' => 'Opravdu chcete zveřejnit tuto stránku?',
+'confirmunrestrict' => 'Potvrzení zveřejnění',
+'unrestrictcomment' => 'Důvod zveřejnění',
+'restrictreason' => '(udejte důvod)',
+'tooltip-restrict' => 'Omezit přístup',
+'notallowedtomoverestrictedpagetext' => 'Pro přesunutí této stránky musíte být členem skupiny \'restrict\' ',
+'restrictedpagespagetext' => 'Na této stránce je seznam všech omezených stránek ve wiki.',
+'regexrestrictedpagespagetext' => 'Všechny stránky s názvem obsahující tento/tyto výraz(y) jsou také omezeny : ',
+
# Short words for each namespace, by default used in the namespace tab in monobook
'nstab-main' => 'Stránka',
'nstab-user' => 'Uživatelova stránka',
@@ -3457,3 +3483,4 @@
'htmlform-selectorother-other' => 'Jiná hodnota',
);
+
diff -Naur mediawiki-1.16.0.orig/languages/messages/MessagesDe.php mediawiki-1.16.0/languages/messages/MessagesDe.php
--- mediawiki-1.16.0.orig/languages/messages/MessagesDe.php 2010-07-27 20:05:07.000000000 +0000
+++ mediawiki-1.16.0/languages/messages/MessagesDe.php 2010-09-25 08:10:38.499706136 +0000
@@ -341,6 +341,31 @@
);
$messages = array(
+/* Restrict patch (http://www.mediawiki.org/wiki/Extension:Page_access_restriction) */
+'restrict' => 'Sperren',
+'restrictthispage' => 'Diese Seite sperren',
+'unrestrict' => 'Sperrung aufheben',
+'unrestrictthispage' => 'Sperrung der Seite aufheben',
+'restricttitle' => 'Gesperrte Seite',
+'restricttext' => 'Diese Seite ist gesperrt. Um sie zu betrachten, musst du ein Mitglied der Gruppe \'restrict\' oder \'viewrestrict\' sein.',
+'restrictedpages' => 'Gesperrte Seiten',
+'restrictlogpage' => 'Log der Sperrungen',
+'restrictlogtext' => 'Unten folgt eine Liste mit gesperrten Seiten. Vgl. [[{{ns:4}}:Gesperrte Seiten]] für mehr Information.',
+'restrictedarticle' => 'Gesperrt: [[$1]]',
+'unrestrictedarticle' => 'Ungesperrt: [[$1]]',
+'restrictsub' => '(Gesperrt: \'[[$1]]\')',
+'confirmrestrict' => 'Sperrung bestätigen',
+'confirmrestricttext' => 'Willst du die Seite wirklich sperren?',
+'restrictcomment' => 'Grund für die Sperrung',
+'unrestrictsub' => '(Entsperren \'[[$1]]\')',
+'confirmunrestricttext' => 'Willst du die Seite wirklich entsperren?',
+'confirmunrestrict' => 'Entsperrung bestätigen',
+'unrestrictcomment' => 'Grund für Entsperrung',
+'restrictreason' => '(einen Grund angeben)',
+'tooltip-restrict' => 'Diese Seite sperren',
+'notallowedtomoverestrictedpagetext' => 'Um diese Seite zu verschieben, musst du ein Mitglied der Gruppe \'restrict\' sein.',
+'regexrestrictedpagespagetext' => 'Diese Seite listet alle gepserrten Seiten in diesem wiki.',
+
# User preference toggles
'tog-underline' => 'Links unterstreichen:',
'tog-highlightbroken' => 'Links auf nicht vorhandene Seiten hervorheben <a href="" class="new">Beispiel</a> (Alternative: wie dieser<a href="" class="internal">?</a>)',
diff -Naur mediawiki-1.16.0.orig/languages/messages/MessagesEn.php mediawiki-1.16.0/languages/messages/MessagesEn.php
--- mediawiki-1.16.0.orig/languages/messages/MessagesEn.php 2010-07-27 20:10:40.000000000 +0000
+++ mediawiki-1.16.0/languages/messages/MessagesEn.php 2010-09-25 08:10:38.540706061 +0000
@@ -3947,6 +3947,32 @@
'percent' => '$1%', # only translate this message to other languages if you have to change it
'parentheses' => '($1)', # only translate this message to other languages if you have to change it
+#Restrict patch (http://www.mediawiki.org/wiki/Extension:Page_access_restriction)
+'restrict' => 'Restrict',
+'restrictthispage' => 'Restrict this page',
+'unrestrict' => 'Unrestrict',
+'unrestrictthispage' => 'Unrestrict this page',
+'restricttitle' => 'Restricted page',
+'restricttext' => 'This page is restricted. To view it you have to be member of the \'restrict\' group or \'viewrestrict\' group.',
+'restrictedpages' => 'Restricted pages',
+'restrictlogpage' => 'Restriction_log',
+'restrictlogtext' => 'Below is a list of page restrictions. See [[{{ns:4}}:Restricted page]] for more information.',
+'restrictedarticle' => 'restricted [[$1]]',
+'unrestrictedarticle' => 'unrestricted [[$1]]',
+'restrictsub' => '(Restrict \'[[$1]]\')',
+'confirmrestrict' => 'Confirm the restriction',
+'confirmrestricttext' => 'Do you really want to restrict this page?',
+'restrictcomment' => 'Reason for restricting',
+'unrestrictsub' => '(Unrestrict \'[[$1]]\')',
+'confirmunrestricttext' => 'Do you really want to unrestrict this page?',
+'confirmunrestrict' => 'Confirm unrestriction',
+'unrestrictcomment' => 'Reason for unrestricting',
+'restrictreason' => '(give a reason)',
+'tooltip-restrict' => 'Restrict this page',
+'notallowedtomoverestrictedpagetext' => 'To move this page, you have to be member of the \'restrict\' group.',
+'restrictedpagespagetext' => 'This page lists all restricted pages in the wiki. ',
+'regexrestrictedpagespagetext' => 'All page titles matching this/these regular expression(s) are also restricted : ',
+
# Multipage image navigation
'imgmultipageprev' => '← previous page',
'imgmultipagenext' => 'next page →',
diff -Naur mediawiki-1.16.0.orig/languages/messages/MessagesEs.php mediawiki-1.16.0/languages/messages/MessagesEs.php
--- mediawiki-1.16.0.orig/languages/messages/MessagesEs.php 2010-07-27 20:05:07.000000000 +0000
+++ mediawiki-1.16.0/languages/messages/MessagesEs.php 2010-09-25 08:10:38.552706040 +0000
@@ -3417,4 +3417,32 @@
'htmlform-reset' => 'Deshacer cambios',
'htmlform-selectorother-other' => 'Otro',
+# Traducción de restriccion de paginas para mediawiki
+# http://www.mediawiki.org/wiki/Extension:Page_access_restriction
+# Coffman 18-07-06
+'restrict' => 'Restringir',
+'restrictthispage' => 'Restringir esta página',
+'unrestrict' => 'Quitar restricción',
+'unrestrictthispage' => 'Quitar restricción en esta página',
+'restricttitle' => 'Página restringida',
+'restricttext' => 'Esta página esta restringida. Para verla tienes que pertenecer al grupo \'restrict\' o al grupo \'viewrestrict\'.',
+'restrictedpages' => 'Páginas restringidas',
+'restrictlogpage' => 'Restriction_log',
+'restrictlogtext' => 'A continuación está una lista de las páginas restringidas. Mira [[{{ns:4}}:Restricted page]] para más información.',
+'restrictedarticle' => 'restringido [[$1]]',
+'unrestrictedarticle' => 'no restringido [[$1]]',
+'restrictsub' => '(Restringir \'[[$1]]\')',
+'confirmrestrict' => 'Confirma la restricción',
+'confirmrestricttext' => '¿ Quieres realmente restringir esta página ?',
+'restrictcomment' => 'Razon de la restricción',
+'unrestrictsub' => '(Quitar restriccion \'[[$1]]\')',
+'confirmunrestricttext' => '¿ Quieres realmente quitar la restricción de esta página ?',
+'confirmunrestrict' => 'Confirma que quieres quitar la restricción',
+'unrestrictcomment' => 'Razon para quitar la restricción',
+'restrictreason' => '(da una razon)',
+'tooltip-restrict' => 'Restringir esta página',
+'notallowedtomoverestrictedpagetext' => 'Para mover esta página, debes ser miembro del grupo \'restrict\'.',
+'restrictedpagespagetext' => 'Esta página lista todas las páginas restringidas del wiki. ',
+'regexrestrictedpagespagetext' => 'Todas las páginas cuyos títulos cumplan alguna de estas expresiones regulares están restringidas : ',
+
);
diff -Naur mediawiki-1.16.0.orig/languages/messages/MessagesFi.php mediawiki-1.16.0/languages/messages/MessagesFi.php
--- mediawiki-1.16.0.orig/languages/messages/MessagesFi.php 2010-07-27 20:05:07.000000000 +0000
+++ mediawiki-1.16.0/languages/messages/MessagesFi.php 2010-09-25 08:10:38.561706025 +0000
@@ -3299,4 +3299,32 @@
'htmlform-reset' => 'Kumoa muutokset',
'htmlform-selectorother-other' => 'Muu',
+#Restrict patch (http://www.mediawiki.org/wiki/Extension:Page_access_restriction)
+'restrict' => 'Rajoita',
+'restrictthispage' => 'Rajoita sivua',
+'unrestrict' => 'Poista rajoitukset',
+'unrestrictthispage' => 'Poista rajoitukset sivulta',
+'restricttitle' => 'Rajoitettu aihe',
+//##title is different from page in Finnish, I had to make a semantic change: page = sivu, title = aihe . Hope it works.##
+'restricttext' => 'Tällä sivulla on rajoituksia. Nähdäksesi sivun sinun on oltava \'restrict\' tai \'viewrestrict\' -ryhmän jäsen.',
+'restrictedpages' => 'Rajoitetut sivut',
+'restrictlogpage' => 'Rajoitusten_seuranta',
+'restrictlogtext' => 'Alla on listaus sivun rajoituksista. Lue enemmän [[{{ns:4}}:rajoitetuista sivuista]] täältä.',
+'restrictedarticle' => 'rajoitettu [[$1]]',
+'unrestrictedarticle' => 'rajoittamaton [[$1]]',
+'restrictsub' => '(Rajoita aihetta: \'[[$1]]\')',
+//##I had to include "aihe"; $1 refers to a variable, which is probably a new topic/ title (=aihe). Finnish language uses postpositioned suffixes (which are difficult to include in code without making silly sounding sentences). Like this: aihe = title, aiheesta = about a title, aiheeseen = to the title. See what I mean?##
+'confirmrestrict' => 'Vahvista rajoitukset',
+'confirmrestricttext' => 'Haluatko varmasti luoda rajoituksia tälle sivulle?',
+'restrictcomment' => 'Kommentti',
+'unrestrictsub' => '(Poista rajoitus aiheesta: \'[[$1]]\')',
+'confirmunrestricttext' => 'Haluatko varmasti poistaa rajoitukset?',
+'confirmunrestrict' => 'Vahvista rajoitus',
+'unrestrictcomment' => 'Kommentti',
+'restrictreason' => '(syy)',
+'tooltip-restrict' => 'Rajoita',
+'notallowedtomoverestrictedpagetext' => 'Siirtääksesi tätä sivua sinun on oltava jäsen \'restrict\' ryhmässä.',
+'restrictedpagespagetext' => 'Tämä sivu listaa kaikki wikissä olevat rajoitetut sivut...',
+'regexrestrictedpagespagetext' => 'Tätä lauseketta vastaavilla sivuilla on rajoituksia:',
+
);
diff -Naur mediawiki-1.16.0.orig/languages/messages/MessagesFr.php mediawiki-1.16.0/languages/messages/MessagesFr.php
--- mediawiki-1.16.0.orig/languages/messages/MessagesFr.php 2010-07-27 20:05:07.000000000 +0000
+++ mediawiki-1.16.0/languages/messages/MessagesFr.php 2010-09-25 08:10:38.582705985 +0000
@@ -3088,6 +3088,32 @@
'exif-orientation-7' => 'Tournée de 90° dans le sens horaire et inversée verticalement',
'exif-orientation-8' => 'Tournée de 90° dans le sens antihoraire',
+#Restrict patch (http://www.mediawiki.org/wiki/Extension:Page_access_restriction)
+'restrict' => 'Restreindre',
+'restrictthispage' => 'Restreindre cette page',
+'unrestrict' => 'Autoriser',
+'unrestrictthispage' => 'Autoriser cette page',
+'restricttitle' => 'Page restreinte',
+'restricttext' => 'L\'accès à cette page a été restreint. Pour pouvoir y accéder vous devez être membre du groupe \'restrict\' ou \'viewrestrict\'',
+'restrictedpages' => 'Pages restreintes',
+'restrictlogpage' => 'Log_de_restriction',
+'restrictlogtext' => 'Voir les [[{{ns:4}}:Page restreinte|directives concernant les pages restreintes]].',
+'restrictedarticle' => 'a restreint [[$1]]',
+'unrestrictedarticle' => 'a autorisé [[$1]]',
+'restrictsub' => '(Restreint \'[[$1]]\')',
+'confirmrestrict' => 'Confirmer la restriction',
+'confirmrestricttext' => 'Voulez vous vraiment restreindre l\'accès à cette page ?',
+'restrictcomment' => 'Raison de la restriction',
+'unrestrictsub' => '(Autorise \'[[$1]]\')',
+'confirmunrestricttext' => 'Voulez-vous vraiment autoriser l\'accès à cette page ?',
+'confirmunrestrict' => 'Confirmer l\'autorisation',
+'unrestrictcomment' => 'Raison de l\'autorisation',
+'restrictreason' => '(indiquez une raison)',
+'tooltip-restrict' => 'Restreindre cette page',
+'notallowedtomoverestrictedpagetext' => 'Pour pouvoir déplacer cette page, vous devez être membre du groupe \'restrict\'',
+'restrictedpagespagetext' => 'Cette page liste les pages restreintes de ce wiki.',
+'regexrestrictedpagespagetext' => 'Les pages dont le titre correspond à cette/ces expressions(s) régulière(s) sont également restreintes : ',
+
'exif-planarconfiguration-1' => 'Données contiguës',
'exif-planarconfiguration-2' => 'Données séparées',
diff -Naur mediawiki-1.16.0.orig/languages/messages/MessagesHe.php mediawiki-1.16.0/languages/messages/MessagesHe.php
--- mediawiki-1.16.0.orig/languages/messages/MessagesHe.php 2010-07-27 20:05:07.000000000 +0000
+++ mediawiki-1.16.0/languages/messages/MessagesHe.php 2010-09-25 08:10:38.607705940 +0000
@@ -3263,6 +3263,32 @@
'confirm-purge-top' => 'לנקות את המטמון של דף זה?',
'confirm-purge-bottom' => 'ניקוי המטמון של דף גורם לגרסה החדשה ביותר להופיע.',
+#Restrict patch ( http://www.mediawiki.org/wiki/Extension:Page_access_restriction )
+'restrict' => '<27><><EFBFBD><EFBFBD>',
+'restrictthispage' => '<27><><EFBFBD><EFBFBD> <20>ף <20><>',
+'unrestrict' => '<27><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>',
+'unrestrictthispage' => '<27><><EFBFBD> <20><><EFBFBD><EFBFBD>ת <20>ף <20><>',
+'restricttitle' => '<27>ף <20><><EFBFBD><EFBFBD><EFBFBD>',
+'restricttext' => '<27>ף <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20>צפ<D7A6><D7A4>. ע<> <20>נת <20>ר<EFBFBD><D7A8>ת<EFBFBD> ע<><D7A2><EFBFBD> <20><><EFBFBD><EFBFBD>ת <20><>ר <20>ק<EFBFBD><D7A7>צת \'restrict\' <20><> \'viewrestrict\'.',
+'restrictedpages' => '<27>פ<EFBFBD><D7A4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
+'restrictlogpage' => '<27><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ת',
+'restrictlogtext' => '<27><><EFBFBD> <20><><EFBFBD><EFBFBD> <20>פ<EFBFBD><D7A4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. ר<><D7A8> [[{{ns:4}}:Restricted page]] <20><><EFBFBD><EFBFBD>ע נ<>סף.',
+'restrictedarticle' => '<27><><EFBFBD><EFBFBD> <20>ת [[$1]]',
+'unrestrictedarticle' => '<27><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ע<> [[$1]]',
+'restrictsub' => '(<28><><EFBFBD><EFBFBD> \'[[$1]]\')',
+'confirmrestrict' => '<27><><EFBFBD> <20>ת<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ש<>רצ<D7A8>נכ<D7A0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ף <20><>?',
+'confirmrestricttext' => '<27><>שר <20>ת <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
+'restrictcomment' => 'ס<><D7A1>ת <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
+'unrestrictsub' => '(<28><><EFBFBD> <20><><EFBFBD><EFBFBD>ת \'[[$1]]\')',
+'confirmunrestricttext' => '<27><><EFBFBD> <20>ת<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ש<>רצ<D7A8>נכ<D7A0> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת <20>ף <20><>?',
+'confirmunrestrict' => '<27><>שר <20>ת <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
+'unrestrictcomment' => 'ס<><D7A1>ת <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
+'restrictreason' => 'ס<><D7A1><EFBFBD>',
+'tooltip-restrict' => '<27><><EFBFBD><EFBFBD> ע<><D7A2><EFBFBD> <20><>',
+'notallowedtomoverestrictedpagetext' => 'ע<> <20>נת <20><>ע<EFBFBD><D7A2>ר <20>ף <20><> ע<><D7A2><EFBFBD> <20><><EFBFBD><EFBFBD>ת <20><>ר <20>ק<EFBFBD><D7A7>צת \'restrict\'',
+'restrictedpagespagetext' => 'ר<><D7A8> רש<D7A8><D7A9>ת כ<> <20><>פ<EFBFBD><D7A4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ק<EFBFBD>',
+'regexrestrictedpagespagetext' => 'כ<> <20><>פ<EFBFBD><D7A4> ש<>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ר<EFBFBD><D7A8><EFBFBD>ר<EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> כ<> :',
+
# Multipage image navigation
'imgmultipageprev' => '→ לדף הקודם',
'imgmultipagenext' => 'לדף הבא ←',
diff -Naur mediawiki-1.16.0.orig/languages/messages/MessagesNl.php mediawiki-1.16.0/languages/messages/MessagesNl.php
--- mediawiki-1.16.0.orig/languages/messages/MessagesNl.php 2010-07-27 20:05:07.000000000 +0000
+++ mediawiki-1.16.0/languages/messages/MessagesNl.php 2010-09-25 08:10:38.641705880 +0000
@@ -2941,6 +2941,33 @@
'math_bad_output' => 'De map voor bestanden met wiskundige formules bestaat niet of kan niet gemaakt worden.',
'math_notexvc' => 'Kan het programma texvc niet vinden; stel alles in volgens de beschrijving in math/README.',
+#Restrict patch (http://www.mediawiki.org/wiki/Extension:Page_access_restriction)
+'restrict' => 'Beperk',
+'restrictthispage' => 'Beperk deze pagina',
+'unrestrict' => 'Onbeperk',
+'unrestrictthispage' => 'Onbeperk deze pagina',
+'restricttitle' => 'Beperkte pagina',
+'restricttext' => 'Deze pagina is beperkt. Om deze te zien moet u lid zijn van de \'restrict\' groep of \'viewrestrict\' groep.',
+'restrictedpages' => 'Beperkte paginas',
+'restrictlogpage' => 'Beperkingen_log',
+'restrictlogtext' => 'Hier is een lijst met pagina beperkingen. Zie [[{{ns:4}}:Restricted page]] voor meer informatie.',
+'restrictedarticle' => 'beperkt [[$1]]',
+'unrestrictedarticle' => 'onbeperkt [[$1]]',
+'restrictsub' => '(Beperk \'[[$1]]\')',
+'confirmrestrict' => 'Bevestig de beperking',
+'confirmrestricttext' => 'Wilt u deze pagina echt beperken?',
+'restrictcomment' => 'Reden voor de beperking',
+'unrestrictsub' => '(Unrestrict \'[[$1]]\')',
+'confirmunrestricttext' => 'Wilt u deze pagina echt onbeperken?',
+'confirmunrestrict' => 'Bevestig de onbeperking',
+'unrestrictcomment' => 'Reden voor de onbeperking',
+'restrictreason' => '(geef een reden)',
+'tooltip-restrict' => 'Beperk deze pagina',
+'notallowedtomoverestrictedpagetext' => 'Om de locatie van deze pagina te veranderen, moet u lid zijn van de \'restrict\' groep.',
+'restrictedpagespagetext' => 'Deze pagina geeft een lijst van alle beperkte paginas in deze wiki. ',
+'regexrestrictedpagespagetext' => 'Alle pagina titels die aan deze uitdrukking voldoen zijn ook beperkt : ',
+
+
# Patrolling
'markaspatrolleddiff' => 'Markeren als gecontroleerd',
'markaspatrolledtext' => 'Deze pagina als gecontroleerd markeren',
diff -Naur mediawiki-1.16.0.orig/languages/messages/MessagesPl.php mediawiki-1.16.0/languages/messages/MessagesPl.php
--- mediawiki-1.16.0.orig/languages/messages/MessagesPl.php 2010-07-27 20:05:07.000000000 +0000
+++ mediawiki-1.16.0/languages/messages/MessagesPl.php 2010-09-25 08:10:38.657705851 +0000
@@ -2798,6 +2798,34 @@
'math_notexvc' => 'Brak programu texvc.
Zapoznaj się z math/README w celu konfiguracji.',
+#Polish translation by Janusz 'Ency' Dorożyński 2006-05-16
+#Restrict patch (http://www.mediawiki.org/wiki/Extension:Page_access_restriction)
+'restrict' => 'Zastrzeżenie',
+'restrictthispage' => 'Zastrzeżenie tej strony',
+'unrestrict' => 'Zdjęcie zastrzeżenia',
+'unrestrictthispage' => 'Zdjęcie zastrzeżenia tej strony',
+'restricttitle' => 'Strona zastrzeżona',
+'restricttext' => 'Ta strona jest zastrzeżona. Aby mieć do niej wgląd musisz być w grupie użytkowników \'restrict\' lub \'viewrestrict\'.',
+'restrictedpages' => 'Strony zastrzeżone',
+'restrictlogpage' => 'Dziennik (log) zastrzeżeń',
+'restrictlogtext' => 'Poniżej jest lista zastrzeżeń stron. Zobacz [[{{ns:4}}:Strony zastrzeżone]] z dodatkowymi informacjami.',
+'restrictedarticle' => 'zastrzeżono [[$1]]',
+'unrestrictedarticle' => 'zdjęto zastrzeżenie [[$1]]',
+'restrictsub' => '(Zastrzeżenie \'[[$1]]\')',
+'confirmrestrict' => 'Potwierdź zastrzeżenie',
+'confirmrestricttext' => 'Czy naprawdę chcesz zastrzec tę stronę?',
+'restrictcomment' => 'Powod zastrzeżenia',
+'unrestrictsub' => '(Zdjęcie zastrzeżenia \'[[$1]]\')',
+'confirmunrestricttext' => 'Czy naprawdę chcesz zdjąć zastrzeżenie tej stronę?',
+'confirmunrestrict' => 'Potwierdź zdjęcie zastrzeżenia',
+'unrestrictcomment' => 'Powód zdjęcia zastrzeżenia',
+'restrictreason' => '(podaj powód)',
+'tooltip-restrict' => 'Zastrzeż tę stronę',
+'notallowedtomoverestrictedpagetext' => 'Przeniesienie tej strony mogą wykonać tylko użytkownicy z grupy \'restrict\'.',
+'restrictedpagespagetext' => 'Ta strona podaje listę wszystkich zastrzeżonych stron tej wiki.',
+'regexrestrictedpagespagetext' => 'Zastrzeżenie dotyczy wszytkich tytułów artykułów spełniających warunki regularnych wyrażeń: '
+
+
# Patrolling
'markaspatrolleddiff' => 'oznacz edycję jako „sprawdzoną”',
'markaspatrolledtext' => 'Oznacz tę stronę jako „sprawdzoną”',
diff -Naur mediawiki-1.16.0.orig/languages/messages/MessagesRu.php mediawiki-1.16.0/languages/messages/MessagesRu.php
--- mediawiki-1.16.0.orig/languages/messages/MessagesRu.php 2010-07-27 20:05:07.000000000 +0000
+++ mediawiki-1.16.0/languages/messages/MessagesRu.php 2010-09-25 08:10:38.683705803 +0000
@@ -3226,6 +3226,32 @@
'confirm-purge-top' => 'Очистить кеш этой страницы?',
'confirm-purge-bottom' => 'После очистки кеша страницы будет показана её последняя версия.',
+#Restrict patch (http://www.mediawiki.org/wiki/Extension:Page_access_restriction)
+'restrict' => '<27>г<EFBFBD>ани<D0BD>и<EFBFBD><D0B8>',
+'restrictthispage' => '<27>г<EFBFBD>ани<D0BD>и<EFBFBD><D0B8> <20><>а<EFBFBD><D0B0><EFBFBD>',
+'unrestrict' => '<27>е ог<D0BE>ани<D0BD>ива<D0B2><D0B0>',
+'unrestrictthispage' => '<27>е ог<D0BE>ани<D0BD>ива<D0B2><D0B0> <20><>а<EFBFBD><D0B0><EFBFBD>',
+'restricttitle' => '<27>о<EFBFBD><D0BE><EFBFBD>п к <20><>а<EFBFBD><D0B0>е ог<D0BE>ани<D0BD>ен',
+'restricttext' => '<27>анна<D0BD> <20><><EFBFBD>ани<D0BD>а ог<D0BE>ани<D0BD>ена дл<D0B4> п<>бли<D0BB>ного п<>о<EFBFBD>мо<D0BC><D0BE>а. <20>л<EFBFBD> п<>о<EFBFBD>мо<D0BC><D0BE>а в<> должн<D0B6> б<><D0B1><EFBFBD> п<>ове<D0B2>енн<D0BD>.',
+'restrictedpages' => '<27>г<EFBFBD>ани<D0BD>енн<D0BD>е <20><>а<EFBFBD><D0B0>и',
+'restrictlogpage' => '<27><><EFBFBD>нал ог<D0BE>ани<D0BD>ений',
+'restrictlogtext' => '<27>иже <20>пи<D0BF>ок <20><><EFBFBD>ани<D0BD> <20> ог<D0BE>ани<D0BD>ени<D0BD>ми. См. [[{{ns:4}}:<3A>г<EFBFBD>ани<D0BD>енн<D0BD>е <20><>а<EFBFBD><D0B0>и]] дл<D0B4> бол<D0BE><D0BB>ей ин<D0B8>о<EFBFBD>ма<D0BC>ии.',
+'restrictedarticle' => '<27>г<EFBFBD>ани<D0BD>енно [[$1]]',
+'unrestrictedarticle' => '<27>е ог<D0BE>ани<D0BD>енно [[$1]]',
+'restrictsub' => '(<28>г<EFBFBD>ани<D0BD>и<EFBFBD><D0B8> \'[[$1]]\')',
+'confirmrestrict' => '<27>од<D0BE>ве<D0B2>ди<D0B4><D0B8> ог<D0BE>ани<D0BD>ение',
+'confirmrestricttext' => '<27><> дей<D0B5><D0B9>ви<D0B2>ел<D0B5>но желае<D0B0>е ог<D0BE>ани<D0BD>и<EFBFBD><D0B8> <20><><EFBFBD> <20><>а<EFBFBD><D0B0><EFBFBD>?',
+'restrictcomment' => '<27><>и<EFBFBD>ин<D0B8> дл<D0B4> ог<D0BE>ани<D0BD>ени<D0BD>',
+'unrestrictsub' => '(<28>е ог<D0BE>ани<D0BD>ива<D0B2><D0B0> \'[[$1]]\')',
+'confirmunrestricttext' => '<27><> дей<D0B5><D0B9>ви<D0B2>ел<D0B5>но желае<D0B0>е <20>н<EFBFBD><D0BD><EFBFBD> ог<D0BE>ани<D0BD>ение?',
+'confirmunrestrict' => '<27>од<D0BE>ве<D0B2>ди<D0B4><D0B8> <20>н<EFBFBD><D0BD>ие ог<D0BE>ани<D0BD>ений',
+'unrestrictcomment' => '<27><>и<EFBFBD>ин<D0B8> <20>н<EFBFBD><D0BD>и<EFBFBD> ог<D0BE>ани<D0BD>ений',
+'restrictreason' => '(<28>кажи<D0B6>е п<>и<EFBFBD>ин<D0B8>)',
+'tooltip-restrict' => '<27>г<EFBFBD>ани<D0BD>и<EFBFBD><D0B8> <20><>а<EFBFBD><D0B0><EFBFBD>',
+'notallowedtomoverestrictedpagetext' => '<27>л<EFBFBD> пе<D0BF>еме<D0BC>ени<D0BD> <20><>ой <20><><EFBFBD>ани<D0BD><D0B8>, <20><> должн<D0B6> б<><D0B1><EFBFBD> <20>леном \'restrict\' г<><D0B3>пп<D0BF>.',
+'restrictedpagespagetext' => '<27> <20><>ом <20>пи<D0BF>ке <20><><EFBFBD>ани<D0BD> ог<D0BE>ани<D0BD>енн<D0BD>е дл<D0B4> п<>о<EFBFBD>мо<D0BC><D0BE>а <20><>а<EFBFBD><D0B0>и. ',
+'regexrestrictedpagespagetext' => '<27><>е названи<D0BD> <20><>а<EFBFBD>ей <20>довле<D0BB>во<D0B2><D0BE><EFBFBD><EFBFBD>и<EFBFBD> <20><>ом<D0BE>/<2F><>им <20>еман<D0B0>и<EFBFBD>е<EFBFBD>ким в<><D0B2>ажени<D0BD>м б<>д<EFBFBD><D0B4> <20>ак же ог<D0BE>ани<D0BD>енн<D0BD>: ',
+
# Multipage image navigation
'imgmultipageprev' => '← предыдущая страница',
'imgmultipagenext' => 'следующая страница →',
diff -Naur mediawiki-1.16.0.orig/languages/messages/MessagesSv.php mediawiki-1.16.0/languages/messages/MessagesSv.php
--- mediawiki-1.16.0.orig/languages/messages/MessagesSv.php 2010-07-27 20:05:07.000000000 +0000
+++ mediawiki-1.16.0/languages/messages/MessagesSv.php 2010-09-25 08:10:38.702705769 +0000
@@ -2779,6 +2779,33 @@
'nocreativecommons' => 'Creative Commons RDF metadata avstängd på denna server.',
'notacceptable' => 'Den här wiki-servern kan inte erbjuda data i ett format som din klient kan läsa.',
+
+#Restrict patch (http://www.mediawiki.org/wiki/Extension:Page_access_restriction)
+'restrict' => 'Begränsa åtkomst',
+'restrictthispage' => "Begränsa åtkomst för denna sida",
+'unrestrict' => 'Upphäv begränsning av åtkomst',
+'unrestrictthispage' => 'Upphäv begränsning av åtkomst för denna sida',
+'restricttitle' => 'Åtkomstbegränsad',
+'restricttext' => 'Denna sida har begränsad åtkomst. För att visa sidan måste du vara medlem i \'åtkomstbegränsa\' - eller \'visaåtkomstbegränsade\' - gruppen.',
+'restrictedpages' => 'Sidor med begränsad åtkomst',
+'restrictlogpage' => 'Logg för åtkomstbegränsning',
+'restrictlogtext' => 'Nedan finns en lista över åtkomstbegränsade sidor. Se [[{{ns:4}}:Åtkomstbegränsadesidor]] för ytterligare information.',
+'restrictedarticle' => 'Begränsade åtkomst för [[$1]]',
+'unrestrictedarticle' => 'Upphävde åtkomstbegränsning för [[$1]]',
+'restrictsub' => '(Begränsa åtkomst för \'[[$1]]\')',
+'confirmrestrict' => 'Bekräfta begränsning av åtkomst',
+'confirmrestricttext' => 'Är du säker på att du vill begränsa åtkomsten för denna sida?',
+'restrictcomment' => 'Orsak till begränsning av åtkomst',
+'unrestrictsub' => '(Upphäv begränsning av åtkomst för \'[[$1]]\')',
+'confirmunrestricttext' => 'Är du säker på att du vill upphäva åtkomstbegränsningen för denna sida?',
+'confirmunrestrict' => 'Bekräfta upphävning av åtkomstbegränsning',
+'unrestrictcomment' => 'Orsak till upphävning av åtkomstbegränsning',
+'restrictreason' => '(ange orsak)',
+'tooltip-restrict' => 'Begränsa åtkomst för denna sida',
+'notallowedtomoverestrictedpagetext' => 'För att kunna flytta denna sida måste du vara medlem i \'åtkomstbegränsa\' - gruppen.',
+'restrictedpagespagetext' => 'Denna sida listar alla sidor med begränsad åtkomst i hela wikin. ',
+'regexrestrictedpagespagetext' => 'Alla titlar som matchar denna/dessa regular expression(s) begränsas också: ',
+
# Attribution
'anonymous' => '{{PLURAL:$1|Anonym användare|Anonyma användare}} på {{SITENAME}}',
'siteuser' => 'användaren $1 på {{SITENAME}}',