[ Index ] |
PHP Cross Reference of MediaWiki-1.24.0 |
[Summary view] [Print] [Text view]
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 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 14:03:12 2014 | Cross-referenced by PHPXref 0.7.1 |