* @ingroup SpecialPage
*/
+use MediaWiki\MediaWikiServices;
+
/**
* Special page to allow managing user group membership
*
*
* @param string|null $par String if any subpage provided, else null
* @throws UserBlockedError|PermissionsError
+ * @suppress PhanUndeclaredMethod
*/
public function execute( $par ) {
$user = $this->getUser();
* (e.g. they don't have the userrights permission), then don't
* allow them to change any user rights.
*/
- if ( !$user->isAllowed( 'userrights' ) ) {
- // @TODO Should the user be blocked from changing user rights if they
- // are partially blocked?
+ if ( !MediaWikiServices::getInstance()
+ ->getPermissionManager()
+ ->userHasRight( $user, 'userrights' )
+ ) {
$block = $user->getBlock();
- if ( $block ) {
- throw new UserBlockedError( $user->getBlock() );
+ if ( $block && $block->isSitewide() ) {
+ throw new UserBlockedError( $block );
}
}
] );
$logid = $logEntry->insert();
if ( count( $tags ) ) {
- $logEntry->setTags( $tags );
+ $logEntry->addTags( $tags );
}
$logEntry->publish( $logid );
}
$this->getOutput()->addWikiTextAsInterface( $status->getWikiText() );
return;
- } else {
- $user = $status->value;
}
+ /** @var User $user */
+ $user = $status->value;
+ '@phan-var User $user';
+
$groups = $user->getGroups();
$groupMemberships = $user->getGroupMemberships();
$this->showEditUserGroupsForm( $user, $groups, $groupMemberships );
if ( WikiMap::isCurrentWikiId( $dbDomain ) ) {
$dbDomain = '';
} else {
- if ( $writing && !$this->getUser()->isAllowed( 'userrights-interwiki' ) ) {
+ if ( $writing && !MediaWikiServices::getInstance()
+ ->getPermissionManager()
+ ->userHasRight( $this->getUser(), 'userrights-interwiki' )
+ ) {
return Status::newFatal( 'userrights-no-interwiki' );
}
if ( !UserRightsProxy::validDatabase( $dbDomain ) ) {