use MediaWiki\Auth\AuthManager;
use MediaWiki\Logger\LoggerFactory;
+use MediaWiki\MediaWikiServices;
/**
* Implements Special:CreateAccount
}
public function isRestricted() {
- return !User::groupHasPermission( '*', 'createaccount' );
+ return !MediaWikiServices::getInstance()
+ ->getPermissionManager()
+ ->groupHasPermission( '*', 'createaccount' );
}
public function userCanExecute( User $user ) {
$user = $this->getUser();
$status = AuthManager::singleton()->checkAccountCreatePermissions( $user );
if ( !$status->isGood() ) {
+ // Track block with a cookie if it doesn't exist already
+ if ( $user->isBlockedFromCreateAccount() ) {
+ MediaWikiServices::getInstance()->getBlockManager()->trackBlockWithCookie( $user );
+ }
throw new ErrorPageError( 'createacct-error', $status->getMessage() );
}
}
} else {
$out->addWikiMsg( 'accountcreatedtext', $user->getName() );
}
- $out->addReturnTo( $this->getPageTitle() );
+
+ $rt = Title::newFromText( $this->mReturnTo );
+ $out->addReturnTo(
+ ( $rt && !$rt->isExternal() ) ? $rt : $this->getPageTitle(),
+ wfCgiToArray( $this->mReturnToQuery )
+ );
return;
}
}