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);