(bug 769) OutputPage::permissionRequired() should suggest groups with the needed...
authorRotem Liss <rotem@users.mediawiki.org>
Tue, 8 Aug 2006 16:33:10 +0000 (16:33 +0000)
committerRotem Liss <rotem@users.mediawiki.org>
Tue, 8 Aug 2006 16:33:10 +0000 (16:33 +0000)
RELEASE-NOTES
includes/OutputPage.php
languages/MessagesEn.php
languages/MessagesHe.php

index 52b3918..047ae3b 100644 (file)
@@ -120,6 +120,7 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
   OutputPage::developerRequired - use OutputPage::permissionRequired instead.
 * Removed the deprecated functions User::isSysop, User::isBureaucrat and User::isDeveloper -
   use User::isAllowed instead.
+* (bug 769) OutputPage::permissionRequired() should suggest groups with the needed permission
 
 == Languages updated ==
 
index 77f0ca0..ccf1fd2 100644 (file)
@@ -718,7 +718,7 @@ class OutputPage {
         * @param string $permission key required
         */
        function permissionRequired( $permission ) {
-               global $wgUser;
+               global $wgGroupPermissions, $wgUser;
 
                $this->setPageTitle( wfMsg( 'badaccess' ) );
                $this->setHTMLTitle( wfMsg( 'errorpagetitle' ) );
@@ -726,10 +726,28 @@ class OutputPage {
                $this->setArticleRelated( false );
                $this->mBodytext = '';
 
-               $sk = $wgUser->getSkin();
-               $ap = $sk->makeKnownLink( wfMsgForContent( 'administrators' ) );
-               $this->addHTML( wfMsgHtml( 'badaccesstext', $ap, $permission ) );
-               $this->returnToMain();
+               $group = '';
+               foreach ( $wgGroupPermissions as $key => $value ) {
+                       if ( isset( $value[$permission] ) && $value[$permission] == true ) {
+                               $group = $key;
+                               break;
+                       }
+               }
+               if ( $group == '' ) {
+                       $message = wfMsg( 'badaccess-nogroup' );
+               } else {
+                       $groupName = User::getGroupName( $group );
+                       $groupPage = User::getGroupPage( $group );
+                       if ( $groupPage ) {
+                               $sk = $wgUser->getSkin();
+                               $groupLink = $sk->makeLinkObj( $groupPage, $groupName );
+                       } else {
+                               $groupLink = $groupName;
+                       }
+                       $message = wfMsg( 'badaccess-group', $groupLink );
+               }
+               $this->addHTML( $message );
+               $this->returnToMain( false );
        }
 
        /**
index d074e94..a83f701 100644 (file)
@@ -510,10 +510,9 @@ parent class in order maintain consistency across languages.
 'jumptonavigation' => 'navigation',
 'jumptosearch' => 'search',
 
-'badaccess'     => 'Permission error',
-'badaccesstext' => 'The action you have requested is limited
-to users with the "$2" permission assigned.
-See $1.',
+'badaccess'         => 'Permission error',
+'badaccess-group'   => 'The action you have requested is limited to users in the group "$1".',
+'badaccess-nogroup' => 'You are not allowed to execute the action you have requested.',
 
 'versionrequired' => 'Version $1 of MediaWiki required',
 'versionrequiredtext' => 'Version $1 of MediaWiki is required to use this page. See [[Special:Version]]',
index ffbee9a..ada799e 100644 (file)
@@ -354,10 +354,9 @@ $messages = array(
 "jumptonavigation"  => "ניווט",
 "jumptosearch"      => "חיפוש",
 
-"badaccess"     => "תקלה בהרשאות",
-"badaccesstext" => 'הפעולה שביקשתם לבצע מוגבלת למשתמשים עם הרשאת "$2".
-
-למידע נוסף, ראו $1.',
+"badaccess"         => "שגיאה בהרשאות",
+"badaccess-group"   => 'הפעולה שביקשתם לבצע מוגבלת למשתמשים בקבוצה "$1".',
+"badaccess-nogroup" => "אינכם מורשים לבצע את הפעולה שביקשתם.",
 
 "versionrequired"     => "נדרשת גרסה $1 של מדיה־ויקי",
 "versionrequiredtext" => 'גרסה $1 של מדיה־ויקי נדרשת לשימוש בדף זה.