diff options
Diffstat (limited to 'bin/wiki/vendor/addwiki/mediawiki-api/src/Service/UserBlocker.php')
-rw-r--r-- | bin/wiki/vendor/addwiki/mediawiki-api/src/Service/UserBlocker.php | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/bin/wiki/vendor/addwiki/mediawiki-api/src/Service/UserBlocker.php b/bin/wiki/vendor/addwiki/mediawiki-api/src/Service/UserBlocker.php new file mode 100644 index 00000000..9cf9f421 --- /dev/null +++ b/bin/wiki/vendor/addwiki/mediawiki-api/src/Service/UserBlocker.php @@ -0,0 +1,45 @@ +<?php + +namespace Mediawiki\Api\Service; + +use InvalidArgumentException; +use Mediawiki\Api\SimpleRequest; +use Mediawiki\DataModel\User; + +/** + * @access private + * + * @author Addshore + */ +class UserBlocker extends Service { + + /** + * @since 0.3 + * + * @param User|string $user + * @param array $extraParams + * + * @throws InvalidArgumentException + * @return bool + */ + public function block( $user, array $extraParams = [] ) { + if ( !$user instanceof User && !is_string( $user ) ) { + throw new InvalidArgumentException( '$user must be either a string or User object' ); + } + + if ( $user instanceof User ) { + $user = $user->getName(); + } + + $params = [ + 'user' => $user, + 'token' => $this->api->getToken( 'block' ), + ]; + + $params = array_merge( $extraParams, $params ); + + $this->api->postRequest( new SimpleRequest( 'block', $params ) ); + return true; + } + +} |