X-Git-Url: https://jfr.im/git/irc/unrealircd/unrealircd-webpanel.git/blobdiff_plain/cd5d0af00bfc5c1fc60eea38691a665332d33f32..67bff06aa6fd4d7d3a9aefc2919307326fa6d755:/api/users.php
diff --git a/api/users.php b/api/users.php
index c0a3009..c2e6234 100644
--- a/api/users.php
+++ b/api/users.php
@@ -1,56 +1,57 @@
user()->getAll();
-if (!isset($_GET) || empty($_GET))
+$out = [];
+foreach($users as $user)
{
- if ($list = $rpc->user()->getAll())
- echo json_encode($list);
- else
- echo json_encode(["error" => "No users found"]);
- die();
+ $isBot = (strpos($user->user->modes, "B") !== false) ? ' Bot' : "";
+ $nick = htmlspecialchars($user->name).$isBot;
+
+ $country = isset($user->geoip->country_code) ? ' '.htmlspecialchars($user->geoip->country_code) : "";
+
+ if ($user->hostname == $user->ip)
+ $hostip = $user->ip;
+ else if ($user->ip == null)
+ $hostip = $user->hostname;
+ else
+ $hostip = $user->hostname . " (".$user->ip.")";
+ $hostip = htmlspecialchars($hostip);
+
+ $account = (isset($user->user->account)) ? "user->account."\">".htmlspecialchars($user->user->account)."" : 'None';
+ $oper = (isset($user->user->operlogin)) ? $user->user->operlogin." ".$user->user->operclass."" : "";
+ if (!strlen($oper))
+ $oper = (strpos($user->user->modes, "S") !== false) ? 'Services Bot' : "";
+ $servername = $user->user->servername;
+ $reputation = $user->user->reputation;
+
+ $nick = "id."\">$nick";
+
+ $out[] = [
+ "Select" => "", /* yeah ridiculous to have here in this file and the feed ;) */
+ "Nick" => $nick,
+ "Country" => $country,
+ "Host/IP" => $hostip,
+ "Account" => $account,
+ "Oper" => $oper,
+ "Connected to" => $servername,
+ "Reputation" => $reputation,
+ ];
}
-elseif (isset($_GET['lookup']))
+
+function custom_sort($a,$b)
{
- if ($user = $rpc->user()->get($_GET['lookup']))
- echo json_encode($user);
- else
- echo json_encode(["error" => "User not found"]);
- die();
+ return strcmp(strtoupper($a["Nick"]), strtoupper($b["Nick"]));
}
-else // we're filtering
-{
- if (!($list = $rpc->user()->getAll()))
- {
- echo json_encode(["error" => "No users found"]);
- die();
- }
-
- $return_list = [];
-
- if (isset($_GET['nick']) && !empty($_GET['nick']) && $nick = strtolower($_GET['nick']))
- {
- foreach ($list as $user)
- {
- if (strstr(strtolower($user->name), $nick))
- $return_list[] = $user;
- }
- }
- if (isset($_GET['hostname']) && !empty($_GET['hostname']) && $nick = strtolower($_GET['hostname']))
- {
- foreach ($list as $user)
- {
- if (strstr(strtolower($user->name), $nick))
- $return_list[] = $user;
- }
- }
- echo json_encode($return_list);
-
-}
\ No newline at end of file
+usort($out, "custom_sort");
+
+echo json_encode($out);