V10.1 stable avec correction securité,bug sur csrf dans index

This commit is contained in:
Oleg Barykin committed 2026-05-27 13:54:59 +02:00
1 parent e9d0010451
commit 21f34c64c9
11 files changed
+1136 -445

No files matched your search

+20 -8
View File
@@ -1,26 +1,38 @@
<?php
// admin/tools/retour_admin.php
declare(strict_types=1);
declare (strict_types = 1);
if (session_status() !== PHP_SESSION_ACTIVE) {
@session_start();
}
// On ne met pas require_login_or_redirect ici, car on peut être sous un compte client/praticien
// On se contente de vérifier qu'on a bien une info d’admin d’origine.
if (!empty($_SESSION['admin_impersonate']) && is_array($_SESSION['admin_impersonate'])) {
// On ne met pas require_login_or_redirect ici,
// car on peut être sous un compte client/praticien.
// On vérifie seulement qu'on a bien l'admin d'origine.
if (! empty($_SESSION['admin_impersonate']) && is_array($_SESSION['admin_impersonate'])) {
$orig = $_SESSION['admin_impersonate'];
if (isset($orig['admin_user_id'])) {
$_SESSION['user_id'] = $orig['admin_user_id'];
session_regenerate_id(true);
unset(
$_SESSION['client_id'],
$_SESSION['praticien_id'],
$_SESSION['secretaire_id'],
$_SESSION['admin_id'],
);
if (isset($orig['admin_compte_id'])) {
$_SESSION['compte_id'] = (int) $orig['admin_compte_id'];
}
if (isset($orig['admin_reference_id'])) {
$_SESSION['reference_id'] = $orig['admin_reference_id'];
$_SESSION['reference_id'] = (int) $orig['admin_reference_id'];
}
if (isset($orig['admin_role'])) {
$_SESSION['role'] = $orig['admin_role'];
$_SESSION['role'] = (string) $orig['admin_role'];
}
$_SESSION['last_activity'] = time();
unset($_SESSION['admin_impersonate']);
}