<?php
define('IN_PONEPASTE', 1);
require_once(__DIR__ . '/../../includes/common.php');

use PonePaste\Models\User;
use PonePaste\Models\AdminLog;

function updateAdminHistory(User $admin, int $action) : void {
    $log = new AdminLog([
        'user_id' => $admin->id,
        'action' => $action,
        'ip' => $_SERVER['REMOTE_ADDR']
    ]);

    $log->save();
}

if ($current_user === null || $current_user->role < User::ROLE_MODERATOR) {
    header('Location: ..');
    die();
}

if (isset($_SESSION['admin_login']) && $_SESSION['admin_login']) {
    header('Location: dashboard.php');
    exit();
}

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (pp_password_verify($_POST['password'], $current_user->admin_password_hash)) {
        updateAdminHistory($current_user, AdminLog::ACTION_LOGIN);
        $_SESSION['admin_login'] = true;
        header("Location: dashboard.php");
        exit();
    } else {
        updateAdminHistory($current_user, AdminLog::ACTION_FAIL_LOGIN);
        $msg = '<div class="paste-alert alert6" style="text-align:center;">
						Wrong Password
					</div>';
    }
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>PonePaste - Authenticate</title>
    <link href="css/paste.css" rel="stylesheet">
    <style>
        body {
            background: #F5F5F5;
        }
    </style>
</head>
<body>
<div class="login-form">
    <?php
    if (isset($msg)) {
        echo $msg;
    }
    ?>
    <form action="." method="post">
        <div class="top">
            <h1>PonePaste Admin Authentication</h1>
        </div>
        <div class="form-area">
            <div class="group">
                <input type="text" class="form-control" id="username" name="username" disabled="disabled" value="<?= pp_html_escape($current_user->username); ?>">
                <i class="fa fa-user"></i>
            </div>
            <div class="group">
                <input type="password" class="form-control" id="password" name="password" placeholder="Password"
                       value="">
                <i class="fa fa-key"></i>
            </div>
            <button type="submit" class="btn btn-default btn-block">Authenticate</button>
        </div>
    </form>
</div>
</body>
</html>