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); }
/** * @todo document */ function wfSpecialEmailuser($par) { global $wgUser, $wgOut, $wgRequest, $wgEnableEmail, $wgEnableUserEmail; if (!($wgEnableEmail && $wgEnableUserEmail)) { $wgOut->showErrorPage("nosuchspecialpage", "nospecialpagetext"); return; } if (!$wgUser->canSendEmail()) { wfDebug("User can't send.\n"); $wgOut->showErrorPage("mailnologin", "mailnologintext"); return; } $action = $wgRequest->getVal('action'); $target = isset($par) ? $par : $wgRequest->getVal('target'); if ("" == $target) { wfDebug("Target is empty.\n"); $wgOut->showErrorPage("notargettitle", "notargettext"); return; } $nt = Title::newFromURL($target); if (is_null($nt)) { wfDebug("Target is invalid title.\n"); $wgOut->showErrorPage("notargettitle", "notargettext"); return; } $nu = User::newFromName($nt->getText()); if (is_null($nu) || !$nu->canReceiveEmail()) { wfDebug("Target is invalid user or can't receive.\n"); $wgOut->showErrorPage("noemailtitle", "noemailtext"); return; } if ($wgUser->isBlockedFromEmailUser()) { // User has been blocked from sending e-mail. Show the std blocked form. wfDebug("User is blocked from sending e-mail.\n"); $wgOut->blockedPage(); return; } if (!$wgUser->getEditCount()) { //no edits? no emailing... $wgOut->errorpage('Emailerror', 'Emailerrortext'); return; } $f = new EmailUserForm($nu); if ("success" == $action) { $f->showSuccess($nu); } else { if ("submit" == $action && $wgRequest->wasPosted() && $wgUser->matchEditToken($wgRequest->getVal('wpEditToken'))) { # Check against the rate limiter if ($wgUser->pingLimiter('emailuser')) { $wgOut->rateLimited(); return; } $f->doSubmit(); } else { $f->showForm(); } } }
/** * 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(); } }
function wfSpecialEmailuser($par) { global $wgUser, $wgOut, $wgRequest, $wgEnableEmail, $wgEnableUserEmail; if (!($wgEnableEmail && $wgEnableUserEmail)) { $wgOut->errorpage("nosuchspecialpage", "nospecialpagetext"); return; } if (!$wgUser->canSendEmail()) { wfDebug("User can't send.\n"); $wgOut->errorpage("mailnologin", "mailnologintext"); return; } $action = $wgRequest->getVal('action'); $target = isset($par) ? $par : $wgRequest->getVal('target'); if ("" == $target) { wfDebug("Target is empty.\n"); $wgOut->errorpage("notargettitle", "notargettext"); return; } $nt = Title::newFromURL($target); if (is_null($nt)) { wfDebug("Target is invalid title.\n"); $wgOut->errorpage("notargettitle", "notargettext"); return; } $nu = User::newFromName($nt->getText()); if (is_null($nu) || !$nu->canReceiveEmail()) { wfDebug("Target is invalid user or can't receive.\n"); $wgOut->errorpage("noemailtitle", "noemailtext"); return; } $address = $nu->getEmail(); $f = new EmailUserForm($nu->getName() . " <{$address}>", $target); if ("success" == $action) { $f->showSuccess(); } else { if ("submit" == $action && $wgRequest->wasPosted() && $wgUser->matchEditToken($wgRequest->getVal('wpEditToken'))) { $f->doSubmit(); } else { $f->showForm(); } } }