summaryrefslogtreecommitdiff
path: root/includes/functions_user.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/functions_user.php')
-rw-r--r--includes/functions_user.php31
1 files changed, 31 insertions, 0 deletions
diff --git a/includes/functions_user.php b/includes/functions_user.php
new file mode 100644
index 0000000..690350a
--- /dev/null
+++ b/includes/functions_user.php
@@ -0,0 +1,31 @@
+<?php
+
+function username_exists(string $username): bool
+{
+ $sql = "SELECT * FROM users WHERE user_name = ?;";
+ $result = Database::get()->query($sql, "s", $username);
+
+ return !empty($result);
+}
+
+function register_user(string $username, string $pass_hash)
+{
+ $sql = "INSERT INTO users(user_name, user_pass, user_date, user_level) VALUES(?, ?, NOW(), 0);";
+ Database::get()->query($sql, "ss", $username, $pass_hash);
+}
+
+function change_password(User $user, string $pass_hash)
+{
+ if (!Session::get()->is_signed_in()) {
+ trigger_error('You are not signed in.');
+ return;
+ }
+
+ if (Session::get()->get_current_user()->id != $user->id) {
+ trigger_error("You can't change another user's password.");
+ return;
+ }
+
+ $sql = "UPDATE users SET user_pass = ? WHERE user_id = ?;";
+ Database::get()->query($sql, "si", $pass_hash, $user->id);
+} \ No newline at end of file