Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
/**
 * 	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();
    }
}