For consistency of the interface, don't do expensive checks on page view.
authorAlexandre Emsenhuber <ialex.wiki@gmail.com>
Thu, 31 May 2012 08:03:46 +0000 (10:03 +0200)
committerAlexandre Emsenhuber <ialex.wiki@gmail.com>
Thu, 31 May 2012 08:03:46 +0000 (10:03 +0200)
Change-Id: I4dfda5e286d5d78965469410f39504a211624dee

includes/Article.php

index ded8c49..4b67ea7 100644 (file)
@@ -1050,16 +1050,12 @@ class Article extends Page {
                } elseif ( $this->getTitle()->getNamespace() === NS_MEDIAWIKI ) {
                        // Use the default message text
                        $text = $this->getTitle()->getDefaultMessageText();
+               } elseif ( $this->getTitle()->quickUserCan( 'create', $this->getContext()->getUser() )
+                       && $this->getTitle()->quickUserCan( 'edit', $this->getContext()->getUser() )
+               ) {
+                       $text = wfMsgNoTrans( 'noarticletext' );
                } else {
-                       $createErrors = $this->getTitle()->getUserPermissionsErrors( 'create', $this->getContext()->getUser() );
-                       $editErrors = $this->getTitle()->getUserPermissionsErrors( 'edit', $this->getContext()->getUser() );
-                       $errors = array_merge( $createErrors, $editErrors );
-
-                       if ( !count( $errors ) ) {
-                               $text = wfMsgNoTrans( 'noarticletext' );
-                       } else {
-                               $text = wfMsgNoTrans( 'noarticletext-nopermission' );
-                       }
+                       $text = wfMsgNoTrans( 'noarticletext-nopermission' );
                }
                $text = "<div class='noarticletext'>\n$text\n</div>";