]> jfr.im git - irc/unrealircd/unrealircd-webpanel.git/commitdiff
Some casual fixes
authorValerie Pond <redacted>
Wed, 18 Jan 2023 01:18:47 +0000 (01:18 +0000)
committerValerie Pond <redacted>
Wed, 18 Jan 2023 01:18:47 +0000 (01:18 +0000)
plugins/sql_auth/SQL/user.php
plugins/sql_auth/index.php
plugins/sql_auth/login.php
plugins/sql_auth/sql_auth.php

index 074a36997fedacf34f061c143233d878631318d1..440cb9c8f9ab31a6e02da9e16df642f2cfd20f0d 100644 (file)
@@ -4,7 +4,7 @@ class SQLA_User
 {
     public $id = NULL;
     public $username = NULL;
-    protected $passhash = NULL;
+    private $passhash = NULL;
     public $first_name = NULL;
     public $last_name = NULL;
     public $user_meta = [];
@@ -68,6 +68,21 @@ class SQLA_User_Meta
     }
 }
 
+/**
+ * Array of user
+ * 
+ * Required:
+ * user_name
+ * user_pass
+ * 
+ * Optional:
+ * user_fname
+ * user_lname
+ * 
+ * @param array $user
+ * @throws Exception
+ * @return bool
+ */
 function create_new_user(array $user) : bool
 {
     if (!isset($user['user_name']) || !isset($user['user_pass']))
index a511a2dcd863ce91739e2ee9909bc83ca0f892a6..54568e22c7e6670ba3f2b0666073dd65d398f9ef 100644 (file)
@@ -3,6 +3,7 @@ $conn = NULL;
 
 require_once "../../common.php";
 require_once "../../header.php";
+require_once "SQL/sql.php";
 require_once "SQL/user.php";
 do_log($_POST);
 
@@ -11,31 +12,102 @@ if (isset($_POST))
     $p = $_POST;
     
 }
-
+var_dump($_POST);
 
 $conn = sqlnew();
-$count = $conn->query("SELECT count(*) FROM ".SQL_PREFIX."users")->fetchColumn();
+$result = $conn->query("SELECT user_id FROM " . SQL_PREFIX . "users");
+
+if (!$result) // impossible
+{
+    die("Something went wrong.");
+}
+
+$userlist = [];
+while($row =  $result->fetch())
+{
+    $userlist[] = new SQLA_User(NULL, $row['user_id']);
+}
 ?>
-<div class="mt-5">
-    <div class="card text-center" style="width: 18rem;">
-            <div class="card-header bg-warning">
-                <div class="row">
-                    <div class="col">
-                        <i class="fa fa-screwdriver-wrench fa-3x"></i>
-                    </div>
-                    <div class="col">
-                        <h3 class="display-4"><?php echo $count; ?></h3>
-                    </div>
-                </div>
-            </div>
-            <div class="card-body">
-                <div class="row">
-                    <div class="col">
-                        <h6>Panel Admins</h6>
-                    </div>
-                    <div class="col"> <a class="btn btn-primary" href="<?php echo BASE_URL; ?>users">View</a></div>
-                </div>
-            </div>
+<h4>Panel Access Overview</h4>
+
+Click on a username to view more information.
+<br><br>
+<div id="Users">
+       
+            <form method="post">
+<p><button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal">
+                       Add New User
+       </button></p></table>
+       <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="confirmModalCenterTitle" aria-hidden="true">
+       <div class="modal-dialog modal-dialog-centered" role="document">
+               <div class="modal-content">
+               <div class="modal-header">
+                       <h5 class="modal-title" id="myModalLabel">Add new Admin Panel user</h5>
+                       <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                       <span aria-hidden="true">&times;</span>
+                       </button>
+               </div>
+               <div class="modal-body">
+               
+                <div class="align_label">Username: </div> <input class="curvy" type="text" id="user_add" name="user_add"><br>
+                <div class="align_label">Password: </div> <input class="curvy" type="password" name="password" id="password"><br>
+                <div class="align_label">Confirm: </div> <input class="curvy" type="password" name="confirm_password" id="confirm_password"><br>
+                <div class="align_label">First Name: </div> <input class="curvy" type="text" name="add_first_name" id="add_first_name"><br>
+                <div class="align_label">Last Name: </div> <input class="curvy" type="text" name="add_last_name" id="add_last_name"><br>
+                <div class="align_label">Info/Bio: </div> <input class="curvy" type="text" name="add_bio" id="add_bio"><br>
         </div>
-    </div>
-</div>
\ No newline at end of file
+                                               
+               <div class="modal-footer">
+                       <button id="CloseButton" type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
+                       <button type="submit" class="btn btn-danger">Add User</button>
+                       
+               </div>
+               </div>
+       </div>
+       </div>
+</form>
+       <table class="container-xxl table table-sm table-responsive caption-top table-striped">
+       <thead class="table-primary">
+       <form method="post">
+       <th scope="col"><input type="checkbox" label='selectall' onClick="toggle_tkl(this)" /></th>
+       <th scope="col">Username</th>
+       <th scope="col">First Name</th>
+       <th scope="col">Last Name</th>
+       </thead>
+       <tbody>
+       <?php
+               foreach($userlist as $user)
+               {
+                       
+                       echo "<td scope=\"col\"><input type=\"checkbox\" value='" .base64_encode($user->id) . "' name=\"sqluser[]\"></td>";
+                       echo "<td scope=\"col\">".$user->username."</td>";
+                       echo "<td scope=\"col\">".$user->first_name."</td>";
+                       echo "<td scope=\"col\">".$user->last_name."</td>";
+                       echo "</tr>";
+               }
+       ?></tbody></table><p><button type="button" class="btn btn-danger" data-toggle="modal" data-target="#myModal2">
+       Delete selected
+       </button></p>
+       <div class="modal fade" id="myModal2" tabindex="-1" role="dialog" aria-labelledby="confirmModalCenterTitle" aria-hidden="true">
+       <div class="modal-dialog modal-dialog-centered" role="document">
+               <div class="modal-content">
+               <div class="modal-header">
+                       <h5 class="modal-title" id="myModalLabel">Confirm deletion</h5>
+                       <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                       <span aria-hidden="true">&times;</span>
+                       </button>
+               </div>
+               <div class="modal-body">
+                       Are you sure you want to do this?<br>
+                       This cannot be undone.                  
+               </div>
+               <div class="modal-footer">
+                       <button id="CloseButton" type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
+                       <button type="submit" action="post" class="btn btn-danger">Delete</button>
+                       
+               </div>
+               </div>
+       </div>
+       </div></form></div></div>
+
+<?php require_once 'footer.php'; ?>
index b0b0aa45735268c6f892e87c97a03177cc069ed6..7f2dff7b2665aaf41c3f7ed77315b70faa07eac0 100644 (file)
@@ -17,9 +17,7 @@ if (!empty($_POST))
 {
   if ($_POST['username'] && $_POST['password'])
   {
-      session_start([
-        'cookie_lifetime' => 86400,
-      ]);
+      
       $user = new SQLA_User($_POST['username']);
       
       /* not being too informative with the login error in case of attackers */
index 6c9516d60d6aa7ed9dc3d5f1fd9ea9a93015a0bd..203fac73e1c8b59e81e5393c44020fdb18e59172 100644 (file)
@@ -30,22 +30,9 @@ class sql_auth
        public static function add_navbar(&$pages)
        {
                session_start();
-               $query = "SELECT * FROM INFORMATION_SCHEMA.TABLES
-               WHERE TABLE_TYPE = 'BASE TABLE'
-               AND TABLE_NAME = '".SQL_PREFIX."users'";
-
-               $conn = sqlnew();
-               $result = $conn->query($query);
-               $notifs = 0;
-               $link = "";
-               if (!$result || !$result->fetchColumn())
-               {
-                       ++$notifs;
-                       $link = "error.php?errno=1";
-               }
-               $label = ($notifs) ? "<span class=\"position-absolute top-0 start-100 translate-middle badge rounded-pill bg-danger\">$notifs</span>" : "";
-               $pages["Panel Access$label"] = "plugins/sql_auth/$link";
-               if ($_SESSION['id'])
+               
+               $pages["Panel Access"] = "plugins/sql_auth/";
+               if (isset($_SESSION['id']))
                {
                        $pages["Logout"] = "plugins/sql_auth/login.php?logout=true";
                }
@@ -53,7 +40,6 @@ class sql_auth
 
        public static function session_start($n)
        {
-               session_start();
                if (!isset($_SESSION['id']))
                {
                        header("Location: ".BASE_URL."plugins/sql_auth/login.php");