Use WikiPage instead of Article
[lhc/web/wiklou.git] / includes / specials / SpecialUserrights.php
index 853a9d7..048ed6c 100644 (file)
@@ -99,24 +99,21 @@ class UserrightsPage extends SpecialPage {
                        $this->isself = true;
                }
 
-               $out = $this->getOutput();
-
                if( !$this->userCanChangeRights( $user, true ) ) {
                        // @todo FIXME: There may be intermediate groups we can mention.
-                       $out->showPermissionsErrorPage( array( array(
-                               $user->isAnon()
-                                       ? 'userrights-nologin'
-                                       : 'userrights-notallowed' ) ) );
-                       return;
+                       $msg = $user->isAnon() ? 'userrights-nologin' : 'userrights-notallowed';
+                       throw new PermissionsError( null, array( array( $msg ) ) );
                }
 
                if ( wfReadOnly() ) {
                        throw new ReadOnlyError;
                }
 
+               $this->setHeaders();
                $this->outputHeader();
+
+               $out = $this->getOutput();
                $out->addModuleStyles( 'mediawiki.special' );
-               $this->setHeaders();
 
                // show the general form
                if ( count( $available['add'] ) || count( $available['remove'] ) ) {
@@ -447,10 +444,10 @@ class UserrightsPage extends SpecialPage {
                        Html::hidden( 'wpEditToken', $this->getUser()->editToken( $this->mTarget ) ) .
                        Xml::openElement( 'fieldset' ) .
                        Xml::element( 'legend', array(), wfMsg( 'userrights-editusergroup' ) ) .
-                       wfMsgExt( 'editinguser', array( 'parse' ), wfEscapeWikiText( $user->getName() ), $userToolLinks ) .
+                       wfMessage( 'editinguser' )->params( wfEscapeWikiText( $user->getName() ) )->rawParams( $userToolLinks )->parse() .
                        wfMsgExt( 'userrights-groups-help', array( 'parse' ) ) .
                        $grouplist .
-                       Xml::tags( 'p', null, $this->groupCheckboxes( $groups ) ) .
+                       Xml::tags( 'p', null, $this->groupCheckboxes( $groups, $user ) ) .
                        Xml::openElement( 'table', array( 'border' => '0', 'id' => 'mw-userrights-table-outer' ) ) .
                                "<tr>
                                        <td class='mw-label'>" .
@@ -501,7 +498,7 @@ class UserrightsPage extends SpecialPage {
         * @param $usergroups Array: groups the user belongs to
         * @return string XHTML table element with checkboxes
         */
-       private function groupCheckboxes( $usergroups ) {
+       private function groupCheckboxes( $usergroups, $user ) {
                $allgroups = $this->getAllGroups();
                $ret = '';
 
@@ -549,11 +546,11 @@ class UserrightsPage extends SpecialPage {
                        foreach( $column as $group => $checkbox ) {
                                $attr = $checkbox['disabled'] ? array( 'disabled' => 'disabled' ) : array();
 
+                               $member = User::getGroupMember( $group, $user->getName() );
                                if ( $checkbox['irreversible'] ) {
-                                       $text = htmlspecialchars( wfMsg( 'userrights-irreversible-marker',
-                                               User::getGroupMember( $group ) ) );
+                                       $text = wfMessage( 'userrights-irreversible-marker', $member )->escaped();
                                } else {
-                                       $text = htmlspecialchars( User::getGroupMember( $group ) );
+                                       $text = htmlspecialchars( $member );
                                }
                                $checkboxHtml = Xml::checkLabel( $text, "wpGroup-" . $group,
                                        "wpGroup-" . $group, $checkbox['set'], $attr );
@@ -606,6 +603,6 @@ class UserrightsPage extends SpecialPage {
         */
        protected function showLogFragment( $user, $output ) {
                $output->addHTML( Xml::element( 'h2', null, LogPage::logName( 'rights' ) . "\n" ) );
-               LogEventsList::showLogExtract( $output, 'rights', $user->getUserPage()->getPrefixedText() );
+               LogEventsList::showLogExtract( $output, 'rights', $user->getUserPage() );
        }
 }