One Hat Cyber Team
Your IP :
104.23.197.102
Server IP :
172.67.218.182
Server :
Linux 128-201-239-36.cprapid.com 3.10.0-1160.41.1.el7.x86_64 #1 SMP Tue Aug 31 14:52:47 UTC 2021 x86_64
Server Software :
Apache
PHP Version :
7.4.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
juscatamarca
/
public_html
/
campusjxj
/
helpers
/
Edit File:
auth.php
<?php declare(strict_types=1); require_once __DIR__ . '/functions.php'; require_once ROOT_PATH . '/config/database.php'; function find_active_user_by_email(string $email): ?array { $sql = 'SELECT id, department_id, first_name, last_name, email, password_hash, role, status FROM users WHERE email = :email AND status = :status LIMIT 1'; return db_fetch_one($sql, [ ':email' => strtolower(trim($email)), ':status' => 'active', ]); } function update_user_last_login(int $userId): void { $sql = 'UPDATE users SET last_login_at = NOW(), updated_at = NOW() WHERE id = :id'; db_execute($sql, [':id' => $userId]); } function persist_user_session(array $user): void { $_SESSION['user'] = [ 'id' => (int) $user['id'], 'first_name' => (string) $user['first_name'], 'last_name' => (string) $user['last_name'], 'email' => (string) $user['email'], 'role' => (string) $user['role'], ]; } function authenticate_user(string $email, string $password): ?array { $user = find_active_user_by_email($email); if (!$user) { return null; } if (!password_verify($password, (string) $user['password_hash'])) { return null; } update_user_last_login((int) $user['id']); persist_user_session($user); return $user; } function require_login(): void { if (!is_logged_in()) { set_flash('error', 'Debes iniciar sesion para continuar.'); redirect('login.php'); } } function require_role(string $role): void { require_login(); $user = current_user(); if (($user['role'] ?? null) !== $role) { set_flash('error', 'No tienes permisos para acceder a esta seccion.'); if (($user['role'] ?? null) === 'admin') { redirect('admin/dashboard.php'); } redirect('estudiante/dashboard.php'); } }
Simpan