wfDebug( "IMPORT: $data\n" );
}
- public function notice( $msg /*, $param, ...*/ ) {
- $params = func_get_args();
- array_shift( $params );
-
+ public function notice( $msg, ...$params ) {
if ( is_callable( $this->mNoticeCallback ) ) {
call_user_func( $this->mNoticeCallback, $msg, $params );
} else { # No ImportReporter -> CLI
return true;
} elseif (
$namespace >= 0 &&
- MWNamespace::exists( intval( $namespace ) )
+ MediaWikiServices::getInstance()->getNamespaceInfo()->exists( intval( $namespace ) )
) {
$namespace = intval( $namespace );
$this->setImportTitleFactory( new NamespaceImportTitleFactory( $namespace ) );
if ( !$title || $title->isExternal() ) {
$status->fatal( 'import-rootpage-invalid' );
+ } elseif (
+ !MediaWikiServices::getInstance()->getNamespaceInfo()->
+ hasSubpages( $title->getNamespace() )
+ ) {
+ $displayNSText = $title->getNamespace() == NS_MAIN
+ ? wfMessage( 'blanknamespace' )->text()
+ : MediaWikiServices::getInstance()->getContentLanguage()->
+ getNsText( $title->getNamespace() );
+ $status->fatal( 'import-rootpage-nosubpage', $displayNSText );
} else {
- if ( !MWNamespace::hasSubpages( $title->getNamespace() ) ) {
- $displayNSText = $title->getNamespace() == NS_MAIN
- ? wfMessage( 'blanknamespace' )->text()
- : MediaWikiServices::getInstance()->getContentLanguage()->
- getNsText( $title->getNamespace() );
- $status->fatal( 'import-rootpage-nosubpage', $displayNSText );
- } else {
- // set namespace to 'all', so the namespace check in processTitle() can pass
- $this->setTargetNamespace( null );
- $this->setImportTitleFactory( new SubpageImportTitleFactory( $title ) );
- }
+ // set namespace to 'all', so the namespace check in processTitle() can pass
+ $this->setTargetNamespace( null );
+ $this->setImportTitleFactory( new SubpageImportTitleFactory( $title ) );
}
}
return $status;
}
}
- $args = func_get_args();
- return Hooks::run( 'AfterImportPage', $args );
+ return Hooks::run( 'AfterImportPage', func_get_args() );
}
/**
private function pageOutCallback( $title, $foreignTitle, $revCount,
$sucCount, $pageInfo ) {
if ( isset( $this->mPageOutCallback ) ) {
- $args = func_get_args();
- call_user_func_array( $this->mPageOutCallback, $args );
+ call_user_func_array( $this->mPageOutCallback, func_get_args() );
}
}
} elseif ( !$title->canExist() ) {
$this->notice( 'import-error-special', $title->getPrefixedText() );
return false;
- } elseif ( !$title->userCan( 'edit' ) && !$commandLineMode ) {
- # Do not import if the importing wiki user cannot edit this page
- $this->notice( 'import-error-edit', $title->getPrefixedText() );
- return false;
- } elseif ( !$title->exists() && !$title->userCan( 'create' ) && !$commandLineMode ) {
- # Do not import if the importing wiki user cannot create this page
- $this->notice( 'import-error-create', $title->getPrefixedText() );
- return false;
+ } elseif ( !$commandLineMode ) {
+ $permissionManager = MediaWikiServices::getInstance()->getPermissionManager();
+ $user = RequestContext::getMain()->getUser();
+
+ if ( !$permissionManager->userCan( 'edit', $user, $title ) ) {
+ # Do not import if the importing wiki user cannot edit this page
+ $this->notice( 'import-error-edit', $title->getPrefixedText() );
+
+ return false;
+ }
+
+ if ( !$title->exists() && !$permissionManager->userCan( 'create', $user, $title ) ) {
+ # Do not import if the importing wiki user cannot create this page
+ $this->notice( 'import-error-create', $title->getPrefixedText() );
+
+ return false;
+ }
}
return [ $title, $foreignTitle ];