]> jfr.im git - irc/unrealircd/unrealircd-webpanel.git/blobdiff - users/index.php
Users: add field to filter by server
[irc/unrealircd/unrealircd-webpanel.git] / users / index.php
index 2f06e80ca89350d1f11eb7a12106a32777afb41d..b95d70a07a9fe2282ec50a9fe1c769ff8b696099 100644 (file)
@@ -1,6 +1,15 @@
 <?php
 require_once "../common.php";
-require_once UPATH . "/header.php";
+require_once "../header.php";
+
+if (!empty($_GET))
+{
+       if (isset($_GET['account']) && !isset($_POST['uf_account']))
+               $_POST['uf_account'] = $_GET['account'];
+
+       if (isset($_GET['operonly']) && !isset($_POST['operonly']))
+               $_POST['operonly'] = $_GET['operonly'];
+}
 
 if (!empty($_POST)) {
        do_log($_POST);
@@ -55,6 +64,7 @@ Click on a username to view more information.
 <div id="Users">
        
        <?php
+
        if (isset($_POST['uf_nick']) && strlen($_POST['uf_nick']))
                Message::Info("Listing users which match nick: \"" . $_POST['uf_nick'] . "\"");
 
@@ -67,8 +77,12 @@ Click on a username to view more information.
        if (isset($_POST['uf_account']) && strlen($_POST['uf_account']))
                Message::Info("Listing users which match account: \"" . $_POST['uf_account'] . "\"");
 
+       if (isset($_POST['uf_server']) && strlen($_POST['uf_server']))
+               Message::Info("Listing users connected to servers matching: \"" . $_POST['uf_server'] . "\"");
+
+
        ?>
-       <table class="table table-responsive caption-top table-striped">
+       <table class="container-xxl table table-responsive caption-top table-striped">
        <thead>
                <th scope="col"><h5>Filter:</h5></th>
                <form action="" method="post">
@@ -76,10 +90,12 @@ Click on a username to view more information.
                <th scope="col" colspan="2">Host <input name="uf_host" type="text" class="form-control short-form-control"></th>
                <th scope="col" colspan="2">IP <input name="uf_ip" type="text" class="form-control short-form-control"></th>
                <th scope="col" colspan="2">Account <input name="uf_account" type="text" class="form-control short-form-control"></th>
+               <th scope="col" colspan="2">Server <input name="uf_server" type="text" class="form-control short-form-control"></th>
+               <th scope="col" colspan="2"><input <?php echo (isset($_POST['operonly'])) ? "checked" : ""; ?> name="operonly" type="checkbox" value=""> Opers Only</th>
                <th scope="col"> <input class="btn btn-primary" type="submit" value="Search"></th></form>
        </thead></table>
 
-       <table class="table table-responsive caption-top table-striped">
+       <table class="container-xxl table table-sm table-responsive caption-top table-striped">
        <thead class="table-primary">
                <th scope="col"><input type="checkbox" label='selectall' onClick="toggle_user(this)" /></th>
                <th scope="col">Nick</th>
@@ -124,26 +140,38 @@ Click on a username to view more information.
                        strpos(strtolower($user->user->account), strtolower($_POST['uf_account'])) == false)
                                continue;
 
-                       echo "<tr>";
+                       /* Some basic filtering for ACCOUNT */
+                       if (isset($_POST['uf_server']) && strlen($_POST['uf_server']) && 
+                       strpos(strtolower($user->user->servername), strtolower($_POST['uf_server'])) !== 0 &&
+                       strpos(strtolower($user->user->servername), strtolower($_POST['uf_server'])) == false)
+                               continue;
+
+                       /* Some basic filtering for OPER */
+                       if (isset($_POST['operonly']) &&
+                       (strpos($user->user->modes, "o") == false || strpos($user->user->modes,"S") !== false))
+                               continue;
+
+                       echo "\n<tr>";
                        echo "<th scope=\"row\"><input type=\"checkbox\" value='" . base64_encode($user->id)."' name=\"userch[]\"></th>";
-                       $isBot = (strpos($user->user->modes, "B") !== false) ? ' <span class="badge-pill badge-dark">Bot</span>' : "";
+                       $isBot = (strpos($user->user->modes, "B") !== false) ? ' <span class="badge rounded-pill badge-dark">Bot</span>' : "";
                        echo "<td><a href=\"details.php?nick=".$user->id."\">$user->name$isBot</a></td>";
                        echo "<td>".$user->hostname." (".$user->ip.")</td>";
-                       $account = (isset($user->user->account)) ? $user->user->account : '<span class="badge-pill badge-primary">None</span>';
+                       $account = (isset($user->user->account)) ? "<a href=\"".BASE_URL."users/?account=".$user->user->account."\">".$user->user->account."</a>" : '<span class="badge rounded-pill badge-primary">None</span>';
                        echo "<td>".$account."</td>";
                        $modes = (isset($user->user->modes)) ? "+" . $user->user->modes : "<none>";
                        echo "<td>".$modes."</td>";
-                       $oper = (isset($user->user->operlogin)) ? $user->user->operlogin." <span class=\"badge-pill badge-secondary\">".$user->user->operclass."</span>" : "";
+                       $oper = (isset($user->user->operlogin)) ? $user->user->operlogin." <span class=\"badge rounded-pill badge-secondary\">".$user->user->operclass."</span>" : "";
                        if (!strlen($oper))
-                               $oper = (strpos($user->user->modes, "S") !== false) ? '<span class="badge-pill badge-warning">Services Bot</span>' : "";
+                               $oper = (strpos($user->user->modes, "S") !== false) ? '<span class="badge rounded-pill badge-warning">Services Bot</span>' : "";
                        echo "<td>".$oper."</td>";
 
-                       $secure = (isset($user->tls)) ? "<span class=\"badge-pill badge-success\">Secure</span>" : "<span class=\"badge-pill badge-danger\">Insecure</span>";
+                       $secure = (isset($user->tls)) ? "<span class=\"badge rounded-pill badge-success\">Secure</span>" : "<span class=\"badge rounded-pill badge-danger\">Insecure</span>";
                        if (strpos($user->user->modes, "S") !== false)
                                $secure = "";
                        echo "<td>".$secure."</td>";
-                       echo "<td>".$user->user->servername."</td>";
+                       echo "<td><a href=\"".BASE_URL."servers/details.php?server=".substr($user->id, 0, 3)."\">".$user->user->servername."</a></td>";
                        echo "<td>".$user->user->reputation."</td>";
+                       echo "</tr>";
                }
        ?>
        </tbody></table>