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,
$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;
$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
$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))
<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>
<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>
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";