]> jfr.im git - irc/unrealircd/unrealircd-webpanel.git/commitdiff
Add user emails
authorValerie Pond <redacted>
Sat, 18 Feb 2023 00:07:25 +0000 (00:07 +0000)
committerValerie Pond <redacted>
Sat, 18 Feb 2023 00:07:25 +0000 (00:07 +0000)
Classes/class-paneluser.php
plugins/sql_auth/sql_auth.php
settings/index.php

index fc8337be7459311499b0539cb9545700a31d88a7..8b64d92f20afddbbd1dc78f3429d74f97d1eab85 100644 (file)
@@ -179,6 +179,7 @@ function create_new_user(array &$user) : bool
        $user['fname'] = (isset($user['fname'])) ? htmlspecialchars($user['fname']) : NULL;
        $last['lname'] = (isset($user['lname'])) ? htmlspecialchars($user['lname']) : NULL;
        $user['user_bio'] = (isset($user['user_bio'])) ? htmlspecialchars($user['user_bio']) : NULL;
+       $user['email'] = (isset($user['user_email'])) ? htmlspecialchars($user['user_email']) : NULL;
 
        if (($u = new PanelUser($user['user_name']))->id)
        {
index f3ffcf55b28afc9617a7fac7e2c7c221c15dd2b3..f6e450b39c0cdb9f9cd909d620aee62616bb66f5 100644 (file)
@@ -94,13 +94,30 @@ class sql_auth
                        user_id int AUTO_INCREMENT NOT NULL,
                        user_name VARCHAR(255) NOT NULL,
                        user_pass VARCHAR(255) NOT NULL,
-                       
+                       user_email VARCHAR(255),
                        user_fname VARCHAR(255),
                        user_lname VARCHAR(255),
                        user_bio VARCHAR(255),
                        created VARCHAR(255),
                        PRIMARY KEY (user_id)
                )");
+
+               /**
+                * Patch for beta users
+                * This adds the email column to existing tables without it
+               */
+               $columns = $conn->query("SHOW COLUMNS FROM " . SQL_PREFIX . "users");
+               $column_names = array();
+               $c = $columns->fetchAll();
+               foreach($c as $column) {
+                       $column_names[] = $column['Field'];
+               }
+               $column_exists = in_array("user_email", $column_names);
+               if (!$column_exists) {
+                       $conn->query("ALTER TABLE " . SQL_PREFIX . "users ADD COLUMN user_email varchar(255)");
+               }
+
+
                $conn->query("CREATE TABLE IF NOT EXISTS " . SQL_PREFIX . "user_meta (
                        meta_id int AUTO_INCREMENT NOT NULL,
                        user_id int NOT NULL,
@@ -153,6 +170,7 @@ class sql_auth
                        $obj->last_name = $data['user_lname'] ?? NULL;
                        $obj->created = $data['created'];
                        $obj->bio = $data['user_bio'];
+                       $obj->email = $data['user_email'];
                        $obj->user_meta = (new PanelUser_Meta($obj->id))->list;
                }
                $u['object'] = $obj;
@@ -220,9 +238,10 @@ class sql_auth
                $last_name = $u['lname'];
                $password = $u['user_pass'];
                $user_bio = $u['user_bio'];
+               $user_email = $u['user_email'];
                $conn = sqlnew();
-               $prep = $conn->prepare("INSERT INTO " . SQL_PREFIX . "users (user_name, user_pass, user_fname, user_lname, user_bio, created) VALUES (:name, :pass, :fname, :lname, :user_bio, :created)");
-               $prep->execute(["name" => $username, "pass" => $password, "fname" => $first_name, "lname" => $last_name, "user_bio" => $user_bio, "created" => date("Y-m-d H:i:s")]);
+               $prep = $conn->prepare("INSERT INTO " . SQL_PREFIX . "users (user_name, user_pass, user_fname, user_lname, user_bio, user_email, created) VALUES (:name, :pass, :fname, :lname, :user_bio, :user_email, :created)");
+               $prep->execute(["name" => $username, "pass" => $password, "fname" => $first_name, "lname" => $last_name, "user_bio" => $user_bio, "user_email" => $user_email, "created" => date("Y-m-d H:i:s")]);
                if ($prep->rowCount())
                        $u['success'] = true;
                else
index ba3427d0a7f4643cbed9e5f30455b081cc2c408b..001120a5d55402f83533703aa52474ac4d339b21 100644 (file)
@@ -43,6 +43,7 @@ if (isset($_POST))
                $user['user_pass'] = $p['password'];
                $user['fname'] = $p['add_first_name'];
                $user['lname'] = $p['add_last_name'];
+               $user['user_email'] = $p['user_email'];
                $user['user_bio'] = $p['user_bio'];
                $user['err'] = "";
                if (!create_new_user($user))
@@ -97,10 +98,15 @@ Click on a username to view more information.
                                <label for="password" id="user_add">Password
                                        <input style="width: 170%;" name="password" id="password" class="form-control curvy" type="password"></label>
                        </div>
+                       <div class="input-group mb-3">
+                               <label for="user_email" id="user_add">Email
+                                       <input style="width: 170%;" name="user_email" id="user_email" class="form-control curvy" type="text"></label>
+                       </div>
                        <div class="input-group mb-3">
                                <label for="add_first_name" id="user_add">First Name
                                        <input style="width: 170%;" name="add_first_name" id="add_first_name" class="form-control curvy" type="text"></label>
-                       </div><div class="input-group mb-3">
+                       </div>
+                       <div class="input-group mb-3">
                                <label for="password" id="user_add">Last Name
                                        <input style="width: 170%;" name="add_last_name" id="add_last_name" class="form-control curvy" type="text"></label>
                        </div>
@@ -128,6 +134,7 @@ Click on a username to view more information.
        <th scope="col">Username</th>
        <th scope="col">First Name</th>
        <th scope="col">Last Name</th>
+       <th scope="col">Email</th>
        <th scope="col">Created</th>
        <th scope="col">Bio</th>
        <th scope="col">Last login</th>
@@ -142,6 +149,7 @@ Click on a username to view more information.
                        echo "<td scope=\"col\"><a href=\"".BASE_URL."settings/user-edit.php?id=$user->id\">$user->username</a></td>";
                        echo "<td scope=\"col\">".$user->first_name."</td>";
                        echo "<td scope=\"col\">".$user->last_name."</td>";
+                       echo "<td scope=\"col\"><a href=\"mailto:$user->email\">$user->email</a></td>";
                        echo "<td scope=\"col\"><code>".$user->created."</code></td>";
                        echo "<td scope=\"col\">".$user->bio."</td>";
                        $last = (isset($user->user_meta['last_login'])) ? "<code>".$user->user_meta['last_login'] . "</code> <span class=\"badge rounded-pill badge-dark\">".how_long_ago($user->user_meta['last_login'])."</span>" : "none";