$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->checkReadOnly();
+ $this->setHeaders();
$this->outputHeader();
+
+ $out = $this->getOutput();
$out->addModuleStyles( 'mediawiki.special' );
- $this->setHeaders();
// show the general form
if ( count( $available['add'] ) || count( $available['remove'] ) ) {
$count = count( $list );
if( $count > 0 ) {
$grouplist = wfMessage( 'userrights-groupsmember', $count)->parse();
- $grouplist = '<p>' . $grouplist . ' ' . $this->getLang()->listToText( $list ) . "</p>\n";
+ $grouplist = '<p>' . $grouplist . ' ' . $this->getLanguage()->listToText( $list ) . "</p>\n";
}
$count = count( $autolist );
if( $count > 0 ) {
$autogrouplistintro = wfMessage( 'userrights-groupsmember-auto', $count)->parse();
- $grouplist .= '<p>' . $autogrouplistintro . ' ' . $this->getLang()->listToText( $autolist ) . "</p>\n";
+ $grouplist .= '<p>' . $autogrouplistintro . ' ' . $this->getLanguage()->listToText( $autolist ) . "</p>\n";
}
+
+ $userToolLinks = Linker::userToolLinks(
+ $user->getId(),
+ $user->getName(),
+ false, /* default for redContribsWhenNoEdits */
+ Linker::TOOL_LINKS_EMAIL /* Add "send e-mail" link */
+ );
+
$this->getOutput()->addHTML(
Xml::openElement( 'form', array( 'method' => 'post', 'action' => $this->getTitle()->getLocalURL(), 'name' => 'editGroup', 'id' => 'mw-userrights-form2' ) ) .
Html::hidden( 'user', $this->mTarget ) .
- Html::hidden( 'wpEditToken', $this->getUser()->editToken( $this->mTarget ) ) .
+ Html::hidden( 'wpEditToken', $this->getUser()->getEditToken( $this->mTarget ) ) .
Xml::openElement( 'fieldset' ) .
Xml::element( 'legend', array(), wfMsg( 'userrights-editusergroup' ) ) .
- wfMsgExt( 'editinguser', array( 'parse' ), wfEscapeWikiText( $user->getName() ) ) .
+ 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'>" .
* @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 = '';
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 );
*/
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() );
}
}