This commit introduces a new function, `fxSuperadmRedirectToLoginIfNeeded`, to streamline the login redirection process for superadmin users. It enhances session management by checking for user authentication and allowing legacy account access under specific conditions. Additionally, the login flow is updated to ensure users are redirected appropriately after login, improving the overall security and user experience in the superadmin interface. These changes aim to enhance maintainability and clarity in session handling across various superadmin pages.
89 lines
4.2 KiB
SQL
89 lines
4.2 KiB
SQL
-- MSIN-info — Restauration MASSIVE table info depuis backup (Navicat)
|
|
-- Contexte : après sync_static_db / import prod — clés brutes partout (info_texte = info_clef)
|
|
-- Prérequis :
|
|
-- 1) Backup d'avant incident importée sur le MÊME serveur (ex. devinscription_bak)
|
|
-- 2) Exécuter MSIN-info-restore-diag-compare.sql et valider les volumes
|
|
-- 3) FAIRE UN DUMP de devinscription_preprod.info AVANT ce script
|
|
-- Idempotent : INSERT manquants + UPDATE poubelles ; ne touche pas les textes déjà OK
|
|
-- Notes prod client : attendre blocage sync info ; même procédure avec backup prod pré-sync
|
|
|
|
SET NAMES utf8mb4;
|
|
|
|
-- === CONFIG — modifier avant exécution ===
|
|
SET @db_cible = 'devinscription_preprod';
|
|
SET @db_backup = 'devinscription_bak';
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
-- Étape 1 — Insérer les lignes absentes en cible (clé = info_clef + info_langue + info_prg)
|
|
-- ---------------------------------------------------------------------------
|
|
INSERT INTO devinscription_preprod.info (
|
|
info_clef, info_langue, info_texte, info_aide, info_prg,
|
|
info_description, info_trie, info_actif,
|
|
info_option1, info_option2, info_option3, info_creation
|
|
)
|
|
SELECT
|
|
b.info_clef, b.info_langue, b.info_texte, b.info_aide, b.info_prg,
|
|
b.info_description, b.info_trie, b.info_actif,
|
|
b.info_option1, b.info_option2, b.info_option3, NOW()
|
|
FROM devinscription_bak.info b
|
|
LEFT JOIN devinscription_preprod.info c
|
|
ON c.info_clef = b.info_clef AND c.info_langue = b.info_langue AND c.info_prg = b.info_prg
|
|
WHERE c.pk_info IS NULL;
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
-- Étape 2 — Réparer les poubelles (info_texte = info_clef) quand backup a un vrai libellé
|
|
-- ---------------------------------------------------------------------------
|
|
UPDATE devinscription_preprod.info c
|
|
INNER JOIN devinscription_bak.info b
|
|
ON b.info_clef = c.info_clef AND b.info_langue = c.info_langue AND b.info_prg = c.info_prg
|
|
SET
|
|
c.info_texte = b.info_texte,
|
|
c.info_aide = b.info_aide,
|
|
c.info_description = b.info_description,
|
|
c.info_trie = b.info_trie,
|
|
c.info_actif = b.info_actif,
|
|
c.info_option1 = b.info_option1,
|
|
c.info_option2 = b.info_option2,
|
|
c.info_option3 = b.info_option3,
|
|
c.info_maj = NOW()
|
|
WHERE c.info_texte = c.info_clef
|
|
AND b.info_texte <> b.info_clef
|
|
AND TRIM(b.info_texte) <> '';
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
-- Étape 3 — Réparer texte vide en cible (backup non vide)
|
|
-- ---------------------------------------------------------------------------
|
|
UPDATE devinscription_preprod.info c
|
|
INNER JOIN devinscription_bak.info b
|
|
ON b.info_clef = c.info_clef AND b.info_langue = c.info_langue AND b.info_prg = c.info_prg
|
|
SET
|
|
c.info_texte = b.info_texte,
|
|
c.info_aide = b.info_aide,
|
|
c.info_maj = NOW()
|
|
WHERE TRIM(c.info_texte) = ''
|
|
AND TRIM(b.info_texte) <> ''
|
|
AND b.info_texte <> b.info_clef;
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
-- Étape 4 — Supprimer poubelles orphelines (absentes du backup, jamais traduites)
|
|
-- ATTENTION : exécuter seulement si section E du diag est cohérente
|
|
-- ---------------------------------------------------------------------------
|
|
DELETE c FROM devinscription_preprod.info c
|
|
LEFT JOIN devinscription_bak.info b
|
|
ON b.info_clef = c.info_clef AND b.info_langue = c.info_langue AND b.info_prg = c.info_prg
|
|
WHERE c.info_texte = c.info_clef
|
|
AND b.pk_info IS NULL;
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
-- Étape 5 — Vérification post-restore (doit tendre vers 0 poubelle)
|
|
-- ---------------------------------------------------------------------------
|
|
SELECT 'post_total' AS k, COUNT(*) AS v FROM devinscription_preprod.info
|
|
UNION ALL
|
|
SELECT 'post_poubelle', COUNT(*) FROM devinscription_preprod.info WHERE info_texte = info_clef
|
|
UNION ALL
|
|
SELECT 'post_manquants_vs_backup', COUNT(*)
|
|
FROM devinscription_bak.info b
|
|
LEFT JOIN devinscription_preprod.info c
|
|
ON c.info_clef = b.info_clef AND c.info_langue = b.info_langue AND c.info_prg = b.info_prg
|
|
WHERE c.pk_info IS NULL;
|