*
* @param string|null $par String if any subpage provided, else null
* @throws UserBlockedError|PermissionsError
+ * @suppress PhanUndeclaredMethod
*/
public function execute( $par ) {
$user = $this->getUser();
* 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?
$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 );