42 lines
1.1 KiB
PHP
42 lines
1.1 KiB
PHP
<?php
|
||
// admin/tools/retour_admin.php
|
||
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 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'];
|
||
|
||
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'] = (int) $orig['admin_reference_id'];
|
||
}
|
||
if (isset($orig['admin_role'])) {
|
||
$_SESSION['role'] = (string) $orig['admin_role'];
|
||
}
|
||
|
||
$_SESSION['last_activity'] = time();
|
||
|
||
unset($_SESSION['admin_impersonate']);
|
||
}
|
||
|
||
// Retour à l’admin
|
||
header('Location: /admin/index.php');
|
||
exit;
|