132 lines
3.7 KiB
PHP
132 lines
3.7 KiB
PHP
<?php
|
|
require_once(__DIR__ . '/../class/db-functions.php');
|
|
|
|
$db = DBHandlerSelect::getInstance()->getConnection();
|
|
|
|
ini_set('display_errors', 1);
|
|
ini_set('display_startup_errors', 1);
|
|
error_reporting(E_ALL | E_STRICT);
|
|
|
|
include('../../extra/auth.php');
|
|
|
|
if (!Auth::check()) {
|
|
redirectTo('../../public/login');
|
|
exit;
|
|
}
|
|
|
|
$user = Auth::user();
|
|
|
|
$iduserlogin = $user->present()->id;
|
|
$nameuser = $user->present()->first_name;
|
|
$surnameuser = $user->present()->last_name;
|
|
$emailuser = $user->present()->email;
|
|
$avatar = $user->present()->avatar;
|
|
$kindofrole = $user->present()->role_id;
|
|
$kindofrole = (int)$user->present()->role_id;
|
|
|
|
|
|
// Definisci ruolo studente (conferma che sia 2!)
|
|
define('ROLE_STUDENTE', 2);
|
|
|
|
// Avvia sessione se non attiva
|
|
if (session_status() === PHP_SESSION_NONE) {
|
|
session_start();
|
|
}
|
|
|
|
$current_page = basename($_SERVER['PHP_SELF']);
|
|
|
|
// Pagine escluse da TUTTI i redirect/redirect automatici
|
|
$excluded_pages = [
|
|
'login.php',
|
|
'logout.php',
|
|
'register.php',
|
|
'forgot-password.php', // se esiste
|
|
'student_profile.php',
|
|
'select_school.php'
|
|
];
|
|
|
|
// ================================================
|
|
// 1. CREAZIONE AUTOMATICA PROFILO STUDENTE (se manca)
|
|
// ================================================
|
|
if ($kindofrole === ROLE_STUDENTE && !in_array($current_page, $excluded_pages)) {
|
|
|
|
$stmt = $db->prepare("SELECT 1 FROM students WHERE user_id = ? LIMIT 1");
|
|
$stmt->execute([$iduserlogin]);
|
|
$profile_exists = $stmt->fetchColumn();
|
|
|
|
if (!$profile_exists) {
|
|
// Crea record minimo obbligatorio
|
|
$stmt_insert = $db->prepare("
|
|
INSERT INTO students (
|
|
user_id,
|
|
billing_country,
|
|
shipping_same_as_billing,
|
|
privacy_consent,
|
|
created_at,
|
|
updated_at
|
|
) VALUES (
|
|
?, 'Italia', 1, 1, NOW(), NOW()
|
|
)
|
|
");
|
|
$stmt_insert->execute([$iduserlogin]);
|
|
|
|
// Imposta flag per non rifare controlli inutili
|
|
$_SESSION['student_profile_completed'] = true;
|
|
} else {
|
|
$_SESSION['student_profile_completed'] = true;
|
|
}
|
|
}
|
|
|
|
// ================================================
|
|
// 2. SALVA DATI UTENTE IN SESSIONE
|
|
// ================================================
|
|
$_SESSION["iduserlogin"] = $iduserlogin;
|
|
$_SESSION["nameuser"] = $nameuser;
|
|
$_SESSION["surnameuser"] = $surnameuser;
|
|
$_SESSION["emailuser"] = $emailuser;
|
|
$_SESSION["photouser"] = $avatar;
|
|
|
|
$photouser = $_SESSION["photouser"];
|
|
|
|
if (defined('SKIP_SCHOOL_CONTEXT') && SKIP_SCHOOL_CONTEXT === true) {
|
|
return; // oppure salta SOLO i redirect scuola
|
|
}
|
|
|
|
// ================================================
|
|
// 3. LOGICA SCUOLA (solo se profilo base esiste)
|
|
// ================================================
|
|
$has_school_association = false;
|
|
|
|
$stmt_school_check = $db->prepare("SELECT 1 FROM user_schools WHERE user_id = ? LIMIT 1");
|
|
$stmt_school_check->execute([$iduserlogin]);
|
|
$has_school_association = (bool) $stmt_school_check->fetchColumn();
|
|
|
|
if ($has_school_association) {
|
|
// include('schoolid_select.php');
|
|
}
|
|
|
|
// Carica impostazioni scuola solo se c'è school_id valida
|
|
$pages_allow_no_school = ['school_profile.php'];
|
|
|
|
if (isset($_SESSION['school_id']) && (int)$_SESSION['school_id'] > 0) {
|
|
include('school_settings_loader.php');
|
|
} else {
|
|
// Per studenti: se non ha scuola selezionata → vai a select_school
|
|
if ($kindofrole === ROLE_STUDENTE && !in_array($current_page, $excluded_pages)) {
|
|
header("Location: select_school.php");
|
|
exit;
|
|
}
|
|
|
|
// Per owner/admin: vai a school_profile se non è una pagina permessa
|
|
elseif (!in_array($current_page, $pages_allow_no_school)) {
|
|
header("Location: school_profile.php");
|
|
exit;
|
|
}
|
|
|
|
// Default impostazioni minime
|
|
$schoolSettings = [
|
|
'timezone' => 'Europe/Rome',
|
|
'locale' => 'it',
|
|
];
|
|
}
|