public function execute() { global $wgUser; // Check whether email is enabled if (!EmailUserForm::userEmailEnabled()) { $this->dieUsageMsg(array('usermaildisabled')); } $params = $this->extractRequestParams(); // Check required parameters if (!isset($params['target'])) { $this->dieUsageMsg(array('missingparam', 'target')); } if (!isset($params['text'])) { $this->dieUsageMsg(array('missingparam', 'text')); } // Validate target $targetUser = EmailUserForm::validateEmailTarget($params['target']); if (!$targetUser instanceof User) { $this->dieUsageMsg(array($targetUser)); } // Check permissions $error = EmailUserForm::getPermissionsError($wgUser, $params['token']); if ($error) { $this->dieUsageMsg(array($error)); } $form = new EmailUserForm($targetUser, $params['text'], $params['subject'], $params['ccme']); $retval = $form->doSubmit(); if (is_null($retval)) { $result = array('result' => 'Success'); } else { $result = array('result' => 'Failure', 'message' => $retval->getMessage()); } $this->getResult()->addValue(null, $this->getModuleName(), $result); }
/** * Constructor for Special:Emailuser. */ function wfSpecialEmailuser($par) { global $wgRequest, $wgUser, $wgOut; if (!EmailUserForm::userEmailEnabled()) { $wgOut->showErrorPage('nosuchspecialpage', 'nospecialpagetext'); return; } $action = $wgRequest->getVal('action'); $target = isset($par) ? $par : $wgRequest->getVal('target'); $targetUser = EmailUserForm::validateEmailTarget($target); if (!$targetUser instanceof User) { $wgOut->showErrorPage($targetUser . 'title', $targetUser . 'text'); return; } $form = new EmailUserForm($targetUser, $wgRequest->getText('wpText'), $wgRequest->getText('wpSubject'), $wgRequest->getBool('wpCCMe')); if ($action == 'success') { $form->showSuccess(); return; } $error = EmailUserForm::getPermissionsError($wgUser, $wgRequest->getVal('wpEditToken')); if ($error) { switch ($error) { case 'blockedemailuser': $wgOut->blockedPage(); return; case 'actionthrottledtext': $wgOut->rateLimited(); return; case 'sessionfailure': $form->showForm(); return; case 'mailnologin': $wgOut->showErrorPage('mailnologin', 'mailnologintext'); return; default: // It's a hook error list($title, $msg, $params) = $error; $wgOut->showErrorPage($title, $msg, $params); return; } } if ("submit" == $action && $wgRequest->wasPosted()) { $result = $form->doSubmit(); if (!is_null($result)) { $wgOut->addHTML(wfMsg("usermailererror") . ' ' . htmlspecialchars($result->getMessage())); } else { $titleObj = SpecialPage::getTitleFor("Emailuser"); $encTarget = wfUrlencode($form->getTarget()->getName()); $wgOut->redirect($titleObj->getFullURL("target={$encTarget}&action=success")); } } else { $form->showForm(); } }