Variabili dentro il file compose e alcuni fix

This commit is contained in:
2025-12-02 10:50:35 +01:00
parent 738811c0f3
commit 65d8c208bf
6 changed files with 124 additions and 18 deletions

View File

@@ -83,7 +83,7 @@ if (!defined('YEAR')) {
define('YEAR', '2025/26'); // Anno Scolastico Corrente
}
if (!defined('API_URL')) {
define('API_URL', 'http://localhost:3006/classe');
define('API_URL', ''); // URL API di importazione, lascia vuoto per disabilitare. Esempio: http://localhost:3006/classe
}
if (!defined('DEV_MODE')) {
define('DEV_MODE', false); // Modalita' di sviluppo: abilita messaggi di debug aggiuntivi. Imposta su false se sei in produzione

View File

@@ -7,6 +7,29 @@ services:
depends_on:
- db
restart: unless-stopped
environment:
# --- Configuratione Database ---
DB_HOST: db # Host database
DB_USER: orario # Utente database
DB_PASS: orario # Password dell'utente del database
DB_NAME: school_timetable # Nome del database
# --- Impostazioni sito ---
APP_NAME: "Orario Scuola"
YEAR: "2025/26"
API_URL: ""
DEV_MODE: "false"
# --- Impostazioni Autenticazione ---
AUTH_TYPE: "local" # Tipo di autenticazione: può essere local o keycloak
APP_DOMAIN: "" # Dominio dell'app, ad esempio orario.tuosito.com
# --- Impostazioni di Keycloak (solo se il tipo di autenticazione è Keycloak) ---
KEYCLOAK_DOMAIN: "" # Dominio di Keycloak, ad esempio sso.tuosito.com
KEYCLOAK_REALM: "" # Realm di Keycloak, ad esempio master
KEYCLOAK_CLIENT_ID: "" # Client ID per Keycloak, ad esempio orario
KEYCLOAK_CLIENT_SECRET: "" # Client Secret per Keycloak, ad esempio abcde12345
KEYCLOAK_ALLOWED_USERS: '["admin","prof","segreteria"]'
db:
image: mariadb:11
container_name: orario-db

View File

@@ -1,53 +1,131 @@
<?php
// Impostazioni Database
if (!defined('DB_HOST')) {
$val = getenv('DB_HOST');
if ($val !== false && $val !== '') {
define('DB_HOST', $val);
} else {
define('DB_HOST', 'db');
}
}
if (!defined('DB_USER')) {
$val = getenv('DB_USER');
if ($val !== false && $val !== '') {
define('DB_USER', $val);
} else {
define('DB_USER', 'orario');
}
}
if (!defined('DB_PASS')) {
$val = getenv('DB_PASS');
if ($val !== false && $val !== '') {
define('DB_PASS', $val);
} else {
define('DB_PASS', 'orario');
}
}
if (!defined('DB_NAME')) {
$val = getenv('DB_NAME');
if ($val !== false && $val !== '') {
define('DB_NAME', $val);
} else {
define('DB_NAME', 'school_timetable');
}
}
// Impostazioni sito generali
if (!defined('APP_NAME')) {
$val = getenv('APP_NAME');
if ($val !== false && $val !== '') {
define('APP_NAME', $val);
} else {
define('APP_NAME', 'Orario Scuola');
}
}
if (!defined('YEAR')) {
$val = getenv('YEAR');
if ($val !== false && $val !== '') {
define('YEAR', $val);
} else {
define('YEAR', '2025/26');
}
}
if (!defined('API_URL')) {
define('API_URL', 'http://localhost:3006/classe');
$val = getenv('API_URL');
if ($val !== false && $val !== '') {
define('API_URL', $val);
} else {
define('API_URL', '');
}
}
if (!defined('DEV_MODE')) {
define('DEV_MODE', false); // Modalita' di sviluppo
$val = getenv('DEV_MODE');
if ($val !== false && $val !== '') {
define('DEV_MODE', $val);
} else {
define('DEV_MODE', false);
}
}
// Impostazioni autenticazione dashboard amministrativa
if (!defined('AUTH_TYPE')) {
define('AUTH_TYPE','local'); // Può essere local (integrata), keycloak, google
$val = getenv('AUTH_TYPE');
if ($val !== false && $val !== '') {
define('AUTH_TYPE', $val);
} else {
define('AUTH_TYPE','local');
}
}
if (!defined('APP_DOMAIN')) {
define('APP_DOMAIN',''); // Dominio del sito (ad esempio orario.yourdomain.com), richiesto per autenticazioni non local
$val = getenv('APP_DOMAIN');
if ($val !== false && $val !== '') {
define('APP_DOMAIN', $val);
} else {
define('APP_DOMAIN','');
}
}
// Impostazioni autenticazione via Keycloak (richiesto solo se AUTH_TYPE sta impostato su keycloak)
if (AUTH_TYPE === 'keycloak') {
if (!defined('KEYCLOAK_DOMAIN')) {
define('KEYCLOAK_DOMAIN',''); // Dominio di Keycloak (ad esempio auth.yourdomain.com)
$val = getenv('KEYCLOAK_DOMAIN');
if ($val !== false && $val !== '') {
define('KEYCLOAK_DOMAIN', $val);
} else {
define('KEYCLOAK_DOMAIN','');
}
}
if (!defined('KEYCLOAK_REALM')) {
define('KEYCLOAK_REALM',''); // Realm di Keycloak (ad esempio master)
$val = getenv('KEYCLOAK_REALM');
if ($val !== false && $val !== '') {
define('KEYCLOAK_REALM', $val);
} else {
define('KEYCLOAK_REALM','');
}
}
if (!defined('KEYCLOAK_CLIENT_ID')) {
define('KEYCLOAK_CLIENT_ID',''); // Client ID per Keycloak (ad esempio orario)
$val = getenv('KEYCLOAK_CLIENT_ID');
if ($val !== false && $val !== '') {
define('DB_USER', $val);
} else {
define('KEYCLOAK_CLIENT_ID','');
}
}
if (!defined('KEYCLOAK_CLIENT_SECRET')) {
define('KEYCLOAK_CLIENT_SECRET',''); // Client Secret per Keycloak (ad esempio abcdefghijklm)
$val = getenv('KEYCLOAK_CLIENT_SECRET');
if ($val !== false && $val !== '') {
define('KEYCLOAK_CLIENT_SECRET', $val);
} else {
define('KEYCLOAK_CLIENT_SECRET','');
}
}
if (!defined('KEYCLOAK_ALLOWED_USERS')) {
define('KEYCLOAK_ALLOWED_USERS',[]); // Contiene i nomi utente degli utenti autorizzati ad accedere all'amministrazione
$json = getenv('USERS');
if ($json === false || trim($json) === '') {
define('KEYCLOAK_ALLOWED_USERS',[]);
}
$users = json_decode($json, true);
if (json_last_error() !== JSON_ERROR_NONE) {
define('KEYCLOAK_ALLOWED_USERS',[]);
}
define('KEYCLOAK_ALLOWED_USERS',$users);
}
}
?>

View File

@@ -1,6 +1,7 @@
<?php
session_start();
if (!isset($_SESSION['admin'])) { header("Location: login.php"); exit; }
else if (!defined(API_URL) || API_URL == "") { header("Location: index.php"); exit; }
include("../lib/db.php");
$message = "";
$messageType = "";

View File

@@ -30,7 +30,11 @@ if (!isset($_SESSION['admin'])) {
<a href="classes.php">Gestisci Classi</a>
<a href="subjects.php">Gestisci Materie</a>
<a href="timetable.php">Gestisci Orario</a>
<a href="importer.php" style="background: #28a745;">🔄 Importa Orario</a>
<?php
if (defined(API_URL) || API_URL != "") {
echo '<a href="importer.php" style="background: #28a745;">🔄 Importa Orario</a>';
}
?>
<?php
if ($_SESSION['auth_type'] === 'local') {
echo '<a href="password.php">Cambia Password</a>';

View File

@@ -20,7 +20,7 @@ if (!defined('YEAR')) {
define('YEAR', '2025/26'); // Anno Scolastico Corrente
}
if (!defined('API_URL')) {
define('API_URL', 'http://localhost:3006/classe');
define('API_URL', ''); // URL API di importazione, lascia vuoto per disabilitare. Esempio: http://localhost:3006/classe
}
if (!defined('DEV_MODE')) {
define('DEV_MODE', false); // Modalita' di sviluppo: abilita messaggi di debug aggiuntivi. Imposta su false se sei in produzione