summaryrefslogtreecommitdiff
path: root/lib/users.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/users.php')
-rw-r--r--lib/users.php32
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/users.php b/lib/users.php
new file mode 100644
index 0000000..e454a72
--- /dev/null
+++ b/lib/users.php
@@ -0,0 +1,32 @@
+<?php
+include_once $_SERVER['DOCUMENT_ROOT'] . '/lib/config.php';
+
+function authenticate_user(): bool
+{
+ session_start();
+ if (!isset($_COOKIE['SECRET_TINYSOUNDS_KEY'])) {
+ unset($_SESSION['user']);
+ return false;
+ }
+
+ $db = new PDO(DB_URL, DB_USER, DB_PASS);
+
+ $stmt = $db->prepare('SELECT * FROM users WHERE token = ?');
+ $stmt->execute([$_COOKIE['SECRET_TINYSOUNDS_KEY']]);
+
+ $user = $stmt->fetch(PDO::FETCH_ASSOC) ?: null;
+
+ if (!$user) {
+ unset($_COOKIE['SECRET_TINYSOUNDS_KEY']);
+ unset($_SESSION['user']);
+ return false;
+ }
+
+ $stmt = $db->prepare('SELECT * FROM user_connections WHERE user_id = ?');
+ $stmt->execute([$user['id']]);
+
+ $user['connections'] = $stmt->fetchAll(PDO::FETCH_ASSOC);
+
+ $_SESSION['user'] = $user;
+ return true;
+} \ No newline at end of file