[ Index ]

PHP Cross Reference of MediaWiki-1.24.0

title

Body

[close]

/includes/api/ -> ApiEmailUser.php (source)

   1  <?php
   2  /**
   3   *
   4   *
   5   * Created on June 1, 2008
   6   *
   7   * Copyright © 2008 Bryan Tong Minh <[email protected]>
   8   *
   9   * This program is free software; you can redistribute it and/or modify
  10   * it under the terms of the GNU General Public License as published by
  11   * the Free Software Foundation; either version 2 of the License, or
  12   * (at your option) any later version.
  13   *
  14   * This program is distributed in the hope that it will be useful,
  15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17   * GNU General Public License for more details.
  18   *
  19   * You should have received a copy of the GNU General Public License along
  20   * with this program; if not, write to the Free Software Foundation, Inc.,
  21   * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  22   * http://www.gnu.org/copyleft/gpl.html
  23   *
  24   * @file
  25   */
  26  
  27  /**
  28   * API Module to facilitate sending of emails to users
  29   * @ingroup API
  30   */
  31  class ApiEmailUser extends ApiBase {
  32  
  33  	public function execute() {
  34          $params = $this->extractRequestParams();
  35  
  36          // Validate target
  37          $targetUser = SpecialEmailUser::getTarget( $params['target'] );
  38          if ( !( $targetUser instanceof User ) ) {
  39              $this->dieUsageMsg( array( $targetUser ) );
  40          }
  41  
  42          // Check permissions and errors
  43          $error = SpecialEmailUser::getPermissionsError(
  44              $this->getUser(),
  45              $params['token'],
  46              $this->getConfig()
  47          );
  48          if ( $error ) {
  49              $this->dieUsageMsg( array( $error ) );
  50          }
  51  
  52          $data = array(
  53              'Target' => $targetUser->getName(),
  54              'Text' => $params['text'],
  55              'Subject' => $params['subject'],
  56              'CCMe' => $params['ccme'],
  57          );
  58          $retval = SpecialEmailUser::submit( $data, $this->getContext() );
  59  
  60          if ( $retval instanceof Status ) {
  61              // SpecialEmailUser sometimes returns a status
  62              // sometimes it doesn't.
  63              if ( $retval->isGood() ) {
  64                  $retval = true;
  65              } else {
  66                  $retval = $retval->getErrorsArray();
  67              }
  68          }
  69  
  70          if ( $retval === true ) {
  71              $result = array( 'result' => 'Success' );
  72          } else {
  73              $result = array(
  74                  'result' => 'Failure',
  75                  'message' => $retval
  76              );
  77          }
  78  
  79          $this->getResult()->addValue( null, $this->getModuleName(), $result );
  80      }
  81  
  82  	public function mustBePosted() {
  83          return true;
  84      }
  85  
  86  	public function isWriteMode() {
  87          return true;
  88      }
  89  
  90  	public function getAllowedParams() {
  91          return array(
  92              'target' => array(
  93                  ApiBase::PARAM_TYPE => 'string',
  94                  ApiBase::PARAM_REQUIRED => true
  95              ),
  96              'subject' => null,
  97              'text' => array(
  98                  ApiBase::PARAM_TYPE => 'string',
  99                  ApiBase::PARAM_REQUIRED => true
 100              ),
 101              'ccme' => false,
 102          );
 103      }
 104  
 105  	public function getParamDescription() {
 106          return array(
 107              'target' => 'User to send email to',
 108              'subject' => 'Subject header',
 109              'text' => 'Mail body',
 110              'ccme' => 'Send a copy of this mail to me',
 111          );
 112      }
 113  
 114  	public function getDescription() {
 115          return 'Email a user.';
 116      }
 117  
 118  	public function needsToken() {
 119          return 'csrf';
 120      }
 121  
 122  	public function getExamples() {
 123          return array(
 124              'api.php?action=emailuser&target=WikiSysop&text=Content&token=123ABC'
 125                  => 'Send an email to the User "WikiSysop" with the text "Content"',
 126          );
 127      }
 128  
 129  	public function getHelpUrls() {
 130          return 'https://www.mediawiki.org/wiki/API:Email';
 131      }
 132  }


Generated: Fri Nov 28 14:03:12 2014 Cross-referenced by PHPXref 0.7.1