summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/Translate/api/ApiTranslateSandbox.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/Translate/api/ApiTranslateSandbox.php')
-rw-r--r--www/wiki/extensions/Translate/api/ApiTranslateSandbox.php71
1 files changed, 37 insertions, 34 deletions
diff --git a/www/wiki/extensions/Translate/api/ApiTranslateSandbox.php b/www/wiki/extensions/Translate/api/ApiTranslateSandbox.php
index 7876d8cb..3aed7170 100644
--- a/www/wiki/extensions/Translate/api/ApiTranslateSandbox.php
+++ b/www/wiki/extensions/Translate/api/ApiTranslateSandbox.php
@@ -4,7 +4,7 @@
*
* @file
* @author Niklas Laxström
- * @license GPL-2.0+
+ * @license GPL-2.0-or-later
*/
/**
@@ -15,7 +15,7 @@ class ApiTranslateSandbox extends ApiBase {
public function execute() {
global $wgTranslateUseSandbox;
if ( !$wgTranslateUseSandbox ) {
- $this->dieUsage( 'Sandbox feature is not in use', 'sandboxdisabled' );
+ $this->dieWithError( 'apierror-translate-sandboxdisabled', 'sandboxdisabled' );
}
$params = $this->extractRequestParams();
@@ -41,35 +41,35 @@ class ApiTranslateSandbox extends ApiBase {
// Do validations
foreach ( explode( '|', 'username|password|email' ) as $field ) {
if ( !isset( $params[$field] ) ) {
- $this->dieUsage( "Missing parameter $field", 'missingparam' );
+ $this->dieWithError( [ 'apierror-missingparam', $field ], 'missingparam' );
}
}
$username = $params['username'];
if ( User::getCanonicalName( $username, 'creatable' ) === false ) {
- $this->dieUsage( 'User name is not acceptable', 'invalidusername' );
+ $this->dieWithError( 'noname', 'invalidusername' );
}
$user = User::newFromName( $username );
if ( $user->getId() !== 0 ) {
- $this->dieUsage( 'User name is in use', 'nonfreeusername' );
+ $this->dieWithError( 'userexists', 'nonfreeusername' );
}
$password = $params['password'];
if ( !$user->isValidPassword( $password ) ) {
- $this->dieUsage( 'Password is not acceptable', 'invalidpassword' );
+ $this->dieWithError( 'apierror-translate-sandbox-invalidpassword', 'invalidpassword' );
}
$email = $params['email'];
if ( !Sanitizer::validateEmail( $email ) ) {
- $this->dieUsage( 'Email is not acceptable', 'invalidemail' );
+ $this->dieWithError( 'invalidemailaddress', 'invalidemail' );
}
$user = TranslateSandbox::addUser( $username, $email, $password );
- $output = array( 'user' => array(
+ $output = [ 'user' => [
'name' => $user->getName(),
'id' => $user->getId(),
- ) );
+ ] ];
$user->setOption( 'language', $this->getContext()->getLanguage()->getCode() );
$user->saveSettings();
@@ -78,9 +78,7 @@ class ApiTranslateSandbox extends ApiBase {
}
protected function doDelete() {
- if ( !$this->getUser()->isAllowed( 'translate-sandboxmanage' ) ) {
- $this->dieUsage( 'Access denied', 'missingperms' );
- }
+ $this->checkUserRightsAny( 'translate-sandboxmanage' );
$params = $this->extractRequestParams();
@@ -93,7 +91,10 @@ class ApiTranslateSandbox extends ApiBase {
try {
TranslateSandbox::deleteUser( $user );
} catch ( MWException $e ) {
- $this->dieUsage( $e->getMessage(), 'invalidparam' );
+ $this->dieWithError(
+ [ 'apierror-translate-sandbox-invalidparam', wfEscapeWikiText( $e->getMessage() ) ],
+ 'invalidparam'
+ );
}
$logEntry = new ManualLogEntry( 'translatorsandbox', 'rejected' );
@@ -105,9 +106,7 @@ class ApiTranslateSandbox extends ApiBase {
}
protected function doPromote() {
- if ( !$this->getUser()->isAllowed( 'translate-sandboxmanage' ) ) {
- $this->dieUsage( 'Access denied', 'missingperms' );
- }
+ $this->checkUserRightsAny( 'translate-sandboxmanage' );
$params = $this->extractRequestParams();
@@ -117,7 +116,10 @@ class ApiTranslateSandbox extends ApiBase {
try {
TranslateSandbox::promoteUser( $user );
} catch ( MWException $e ) {
- $this->dieUsage( $e->getMessage(), 'invalidparam' );
+ $this->dieWithError(
+ [ 'apierror-translate-sandbox-invalidparam', wfEscapeWikiText( $e->getMessage() ) ],
+ 'invalidparam'
+ );
}
TranslateSandbox::sendEmail( $this->getUser(), $user, 'promotion' );
@@ -125,15 +127,13 @@ class ApiTranslateSandbox extends ApiBase {
$logEntry = new ManualLogEntry( 'translatorsandbox', 'promoted' );
$logEntry->setPerformer( $this->getUser() );
$logEntry->setTarget( $user->getUserPage() );
- $logEntry->setParameters( array(
+ $logEntry->setParameters( [
'4::userid' => $user->getId(),
- ) );
+ ] );
$logid = $logEntry->insert();
$logEntry->publish( $logid );
- $user->addNewUserLogEntry( 'tsbpromoted' );
$this->createUserPage( $user );
- Hooks::run( 'AddNewAccount', array( $user, false ) );
}
}
@@ -146,7 +146,10 @@ class ApiTranslateSandbox extends ApiBase {
try {
TranslateSandbox::sendEmail( $this->getUser(), $user, 'reminder' );
} catch ( MWException $e ) {
- $this->dieUsage( $e->getMessage(), 'invalidparam' );
+ $this->dieWithError(
+ [ 'apierror-translate-sandbox-invalidparam', wfEscapeWikiText( $e->getMessage() ) ],
+ 'invalidparam'
+ );
}
}
}
@@ -188,23 +191,23 @@ class ApiTranslateSandbox extends ApiBase {
}
public function getAllowedParams() {
- return array(
- 'do' => array(
- ApiBase::PARAM_TYPE => array( 'create', 'delete', 'promote', 'remind' ),
+ return [
+ 'do' => [
+ ApiBase::PARAM_TYPE => [ 'create', 'delete', 'promote', 'remind' ],
ApiBase::PARAM_REQUIRED => true,
- ),
- 'userid' => array(
+ ],
+ 'userid' => [
ApiBase::PARAM_TYPE => 'integer',
ApiBase::PARAM_DFLT => 0,
ApiBase::PARAM_ISMULTI => true,
- ),
- 'token' => array(
+ ],
+ 'token' => [
ApiBase::PARAM_TYPE => 'string',
ApiBase::PARAM_REQUIRED => true,
- ),
- 'username' => array( ApiBase::PARAM_TYPE => 'string' ),
- 'password' => array( ApiBase::PARAM_TYPE => 'string' ),
- 'email' => array( ApiBase::PARAM_TYPE => 'string' ),
- );
+ ],
+ 'username' => [ ApiBase::PARAM_TYPE => 'string' ],
+ 'password' => [ ApiBase::PARAM_TYPE => 'string' ],
+ 'email' => [ ApiBase::PARAM_TYPE => 'string' ],
+ ];
}
}