summaryrefslogtreecommitdiff
path: root/bin/reevotech/vendor/addwiki/mediawiki-api/src/Service/UserGetter.php
diff options
context:
space:
mode:
authorYaco <franco@reevo.org>2021-10-19 20:42:50 -0300
committerYaco <franco@reevo.org>2021-10-19 20:42:50 -0300
commit1dc109c979d7788e8811b4eecfb8bfdf3b6ea6e2 (patch)
tree21d2a3bd6706af9eeb3e9d1def5a6ab8d8a67e93 /bin/reevotech/vendor/addwiki/mediawiki-api/src/Service/UserGetter.php
parent8c201ace3699b4928daf41eb7b4cdcb4565c6f3b (diff)
adds reevotech scripts
Diffstat (limited to 'bin/reevotech/vendor/addwiki/mediawiki-api/src/Service/UserGetter.php')
-rw-r--r--bin/reevotech/vendor/addwiki/mediawiki-api/src/Service/UserGetter.php63
1 files changed, 63 insertions, 0 deletions
diff --git a/bin/reevotech/vendor/addwiki/mediawiki-api/src/Service/UserGetter.php b/bin/reevotech/vendor/addwiki/mediawiki-api/src/Service/UserGetter.php
new file mode 100644
index 00000000..d3bfbd5b
--- /dev/null
+++ b/bin/reevotech/vendor/addwiki/mediawiki-api/src/Service/UserGetter.php
@@ -0,0 +1,63 @@
+<?php
+
+namespace Mediawiki\Api\Service;
+
+use Mediawiki\Api\SimpleRequest;
+use Mediawiki\DataModel\User;
+
+/**
+ * @access private
+ *
+ * @author Addshore
+ */
+class UserGetter extends Service {
+
+ /**
+ * @param string $username
+ *
+ * @return User
+ */
+ public function getFromUsername( $username ) {
+ $result = $this->api->getRequest(
+ new SimpleRequest(
+ 'query', [
+ 'list' => 'users',
+ 'ususers' => $username,
+ 'usprop' => 'gender|emailable|registration|editcount|rights|implicitgroups|groups|blockinfo',
+ ]
+ )
+ );
+
+ return $this->newUserFromListUsersResult( array_shift( $result['query']['users'] ) );
+ }
+
+ /**
+ * @param array $array
+ *
+ * @return User
+ */
+ private function newUserFromListUsersResult( $array ) {
+ if ( array_key_exists( 'userid', $array ) ) {
+ return new User(
+ $array['name'],
+ $array['userid'],
+ $array['editcount'],
+ $array['registration'],
+ [ 'groups' => $array['groups'], 'implicitgroups' => $array['implicitgroups'] ],
+ $array['rights'],
+ $array['gender']
+ );
+ } else {
+ return new User(
+ $array['name'],
+ 0,
+ 0,
+ '',
+ [ 'groups' => [], 'implicitgroups' => [] ],
+ [],
+ ''
+ );
+ }
+ }
+
+}