X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Fapi%2FApiManageTags.php;h=3299f73b5b0e58b2dc214a548c733ae86dc83896;hp=240d35062af7b9cc98bd7a06dd84e82bd75f2d41;hb=ce079cf6ad79ca8d3360817f809b219d166f9153;hpb=4e90d55fdc9d31d93e24cf05687eb7d180806f44 diff --git a/includes/api/ApiManageTags.php b/includes/api/ApiManageTags.php index 240d35062a..3299f73b5b 100644 --- a/includes/api/ApiManageTags.php +++ b/includes/api/ApiManageTags.php @@ -29,8 +29,12 @@ class ApiManageTags extends ApiBase { $params = $this->extractRequestParams(); // make sure the user is allowed - if ( !$this->getUser()->isAllowed( 'managechangetags' ) ) { - $this->dieUsage( "You don't have permission to manage change tags", 'permissiondenied' ); + if ( $params['operation'] !== 'delete' + && !$this->getUser()->isAllowed( 'managechangetags' ) + ) { + $this->dieWithError( 'tags-manage-no-permission', 'permissiondenied' ); + } elseif ( !$this->getUser()->isAllowed( 'deletechangetags' ) ) { + $this->dieWithError( 'tags-delete-no-permission', 'permissiondenied' ); } $result = $this->getResult(); @@ -42,10 +46,10 @@ class ApiManageTags extends ApiBase { $this->dieStatus( $status ); } - $ret = array( + $ret = [ 'operation' => $params['operation'], 'tag' => $params['tag'], - ); + ]; if ( !$status->isGood() ) { $ret['warnings'] = $this->getErrorFormatter()->arrayFromStatus( $status, 'warning' ); } @@ -65,23 +69,23 @@ class ApiManageTags extends ApiBase { } public function getAllowedParams() { - return array( - 'operation' => array( - ApiBase::PARAM_TYPE => array( 'create', 'delete', 'activate', 'deactivate' ), + return [ + 'operation' => [ + ApiBase::PARAM_TYPE => [ 'create', 'delete', 'activate', 'deactivate' ], ApiBase::PARAM_REQUIRED => true, - ), - 'tag' => array( + ], + 'tag' => [ ApiBase::PARAM_TYPE => 'string', ApiBase::PARAM_REQUIRED => true, - ), - 'reason' => array( + ], + 'reason' => [ ApiBase::PARAM_TYPE => 'string', - ), - 'ignorewarnings' => array( + ], + 'ignorewarnings' => [ ApiBase::PARAM_TYPE => 'boolean', ApiBase::PARAM_DFLT => false, - ), - ); + ], + ]; } public function needsToken() { @@ -89,7 +93,7 @@ class ApiManageTags extends ApiBase { } protected function getExamplesMessages() { - return array( + return [ 'action=managetags&operation=create&tag=spam&reason=For+use+in+edit+patrolling&token=123ABC' => 'apihelp-managetags-example-create', 'action=managetags&operation=delete&tag=vandlaism&reason=Misspelt&token=123ABC' @@ -98,7 +102,7 @@ class ApiManageTags extends ApiBase { => 'apihelp-managetags-example-activate', 'action=managetags&operation=deactivate&tag=spam&reason=No+longer+required&token=123ABC' => 'apihelp-managetags-example-deactivate', - ); + ]; } public function getHelpUrls() {