function doDryRunMerge() { global $wgCentralAuthDryRun; $globalUser = new CentralAuthUser($this->getUser()->getName()); if ($globalUser->exists()) { throw new MWException("Already exists -- race condition"); } if ($wgCentralAuthDryRun) { $this->getOutput()->addWikiMsg('centralauth-notice-dryrun'); } $password = $this->getRequest()->getVal('wpPassword'); $this->addWorkingPassword($password); $passwords = $this->getWorkingPasswords(); $home = false; $attached = array(); $unattached = array(); $methods = array(); $status = $globalUser->migrationDryRun($passwords, $home, $attached, $unattached, $methods); if ($status->isGood()) { // This is the global account or matched it if (count($unattached) == 0) { // Everything matched -- very convenient! $this->getOutput()->addWikiMsg('centralauth-merge-dryrun-complete'); } else { $this->getOutput()->addWikiMsg('centralauth-merge-dryrun-incomplete'); } if (count($unattached) > 0) { $this->getOutput()->addHTML($this->step2PasswordForm($unattached)); $this->getOutput()->addWikiMsg('centralauth-merge-dryrun-or'); } $subAttached = array_diff($attached, array($home)); $this->getOutput()->addHTML($this->step3ActionForm($home, $subAttached, $methods)); } else { // Show error message from status $this->getOutput()->addHTML('<div class="errorbox" style="float:none;">'); $this->getOutput()->addWikiText($status->getWikiText()); $this->getOutput()->addHTML('</div>'); // Show wiki list if required if ($status->hasMessage('centralauth-blocked-text') || $status->hasMessage('centralauth-merge-home-password')) { $out = '<h2>' . wfMsgHtml('centralauth-list-home-title') . '</h2>'; $out .= wfMsgExt('centralauth-list-home-dryrun', 'parse'); $out .= $this->listAttached(array($home), array($home => 'primary')); $this->getOutput()->addHTML($out); } // Show password box $this->getOutput()->addHTML($this->step1PasswordForm()); } }