summaryrefslogtreecommitdiff
path: root/lib/users.php
blob: e454a723df923c8b1a763417f22a226bdd091a9b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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;
}