fix : orphelins search_index + SESSION_NAME non appliqué
- ArticleManager::getSearchIndex() : rebuild automatique si un UUID
référencé dans search_index.json n'existe plus sur le disque (article
supprimé hors CMS via rsync ou suppression manuelle). Même logique que
getBySlug() qui nettoie déjà le slug_index à la volée.
- bootstrap.php : lire SESSION_NAME depuis $_ENV avant session_start(),
permettant de personnaliser le nom du cookie de session via le .env.
- oidc/{start,callback,me}.php : inverser l'ordre des require pour charger
config.php (dotenv) avant bootstrap.php, condition nécessaire pour que
SESSION_NAME soit disponible au démarrage de la session.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -8,6 +8,10 @@ if (!defined('BASE_PATH')) {
|
||||
|
||||
if (session_status() === PHP_SESSION_NONE) {
|
||||
$isHttps = !empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off';
|
||||
$sessionName = $_ENV['SESSION_NAME'] ?? (getenv('SESSION_NAME') ?: null);
|
||||
if ($sessionName !== null && $sessionName !== '') {
|
||||
session_name($sessionName);
|
||||
}
|
||||
session_set_cookie_params([
|
||||
'lifetime' => 0,
|
||||
'path' => '/',
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
declare(strict_types=1);
|
||||
|
||||
require_once dirname(__DIR__, 2) . '/vendor/autoload.php';
|
||||
require_once dirname(__DIR__, 2) . '/bootstrap.php';
|
||||
require_once dirname(__DIR__, 2) . '/config/config.php';
|
||||
require_once dirname(__DIR__, 2) . '/bootstrap.php';
|
||||
|
||||
if (!function_exists('env')) {
|
||||
function env(string $key, ?string $default = null): ?string
|
||||
|
||||
+1
-1
@@ -5,8 +5,8 @@
|
||||
declare(strict_types=1);
|
||||
|
||||
require_once dirname(__DIR__, 2) . '/vendor/autoload.php';
|
||||
require_once dirname(__DIR__, 2) . '/bootstrap.php';
|
||||
require_once dirname(__DIR__, 2) . '/config/config.php';
|
||||
require_once dirname(__DIR__, 2) . '/bootstrap.php';
|
||||
|
||||
function maskToken(?string $t): string
|
||||
{
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
declare(strict_types=1);
|
||||
|
||||
require_once dirname(__DIR__, 2) . '/vendor/autoload.php';
|
||||
require_once dirname(__DIR__, 2) . '/bootstrap.php';
|
||||
require_once dirname(__DIR__, 2) . '/config/config.php';
|
||||
require_once dirname(__DIR__, 2) . '/bootstrap.php';
|
||||
|
||||
if (!function_exists('env')) {
|
||||
function env(string $key, ?string $default = null): ?string
|
||||
|
||||
@@ -867,6 +867,13 @@ class ArticleManager
|
||||
$this->rebuildSearchIndex();
|
||||
return $this->searchIndexCache;
|
||||
}
|
||||
// Rebuild si des UUID ont été supprimés hors CMS (ex. rsync, suppression manuelle)
|
||||
foreach ($data as $entry) {
|
||||
if (!is_dir($this->dataDir . '/' . ($entry['uuid'] ?? ''))) {
|
||||
$this->rebuildSearchIndex();
|
||||
return $this->searchIndexCache;
|
||||
}
|
||||
}
|
||||
$this->searchIndexCache = $data;
|
||||
return $this->searchIndexCache;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user