25use UnexpectedValueException;
39 if (
$params[
'operation'] !==
'delete'
40 && !$authority->isAllowed(
'managechangetags' )
42 $this->
dieWithError(
'tags-manage-no-permission',
'permissiondenied' );
43 } elseif ( !$authority->isAllowed(
'deletechangetags' ) ) {
44 $this->
dieWithError(
'tags-delete-no-permission',
'permissiondenied' );
50 if ( !$ableToTag->isOK() ) {
58 $ignoreWarnings =
$params[
'ignorewarnings'];
60 switch (
$params[
'operation'] ) {
75 throw new UnexpectedValueException(
'invalid operation' );
77 if ( !$status->isOK() ) {
82 'operation' =>
$params[
'operation'],
85 if ( !$status->isGood() ) {
86 $ret[
'warnings'] = $this->
getErrorFormatter()->arrayFromStatus( $status,
'warning' );
88 $ret[
'success'] = $status->value !==
null;
89 if ( $ret[
'success'] ) {
90 $ret[
'logid'] = $status->value;
107 ParamValidator::PARAM_TYPE => [
'create',
'delete',
'activate',
'deactivate' ],
108 ParamValidator::PARAM_REQUIRED =>
true,
112 ParamValidator::PARAM_TYPE =>
'string',
113 ParamValidator::PARAM_REQUIRED =>
true,
116 ParamValidator::PARAM_TYPE =>
'string',
117 ParamValidator::PARAM_DEFAULT =>
'',
119 'ignorewarnings' => [
120 ParamValidator::PARAM_TYPE =>
'boolean',
121 ParamValidator::PARAM_DEFAULT =>
false,
124 ParamValidator::PARAM_TYPE =>
'tags',
125 ParamValidator::PARAM_ISMULTI =>
true,
136 'action=managetags&operation=create&tag=spam&reason=For+use+in+edit+patrolling&token=123ABC'
137 =>
'apihelp-managetags-example-create',
138 'action=managetags&operation=delete&tag=vandlaism&reason=Misspelt&token=123ABC'
139 =>
'apihelp-managetags-example-delete',
140 'action=managetags&operation=activate&tag=spam&reason=For+use+in+edit+patrolling&token=123ABC'
141 =>
'apihelp-managetags-example-activate',
142 'action=managetags&operation=deactivate&tag=spam&reason=No+longer+required&token=123ABC'
143 =>
'apihelp-managetags-example-deactivate',
148 return 'https://www.mediawiki.org/wiki/Special:MyLanguage/API:Tag_management';
153class_alias( ApiManageTags::class,
'ApiManageTags' );
array $params
The job parameters.