diff options
Diffstat (limited to 'www/wiki/extensions/Translate/api/ApiTranslateSandbox.php')
-rw-r--r-- | www/wiki/extensions/Translate/api/ApiTranslateSandbox.php | 71 |
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' ], + ]; } } |