diff --git a/superadm/enregistrer.php b/superadm/enregistrer.php index 544fec3..6ac8562 100644 --- a/superadm/enregistrer.php +++ b/superadm/enregistrer.php @@ -14,15 +14,23 @@ else $action = 'Aucune action définie'; // MSIN-4401 — Actions autorisées en session compte promoteur (com_info), sans usa_id : -// - prefs rapport chrono (chksave / trie / groupe) -// - bascule « dossard récupéré » (remis) depuis le site promoteur / gestion V2 +// prefs rapport, dossard récupéré (remis), validation questions, toggles listes rapports (actif). // Les autres actions restent réservées au canal superadm (usa_id). if (session_status() !== PHP_SESSION_ACTIVE) { session_start(); } $intComCompte = intval($_SESSION['com_info']['com_id'] ?? ($_SESSION['com_id'] ?? 0)); -$tabCompteActions = array('chksave', 'triechange', 'triecheckall', 'groupechange', 'remis'); +// Actions appelées depuis le site compte / rapports promoteur (sans usa_id). +$tabCompteActions = array( + 'chksave', + 'triechange', + 'triecheckall', + 'groupechange', + 'remis', // dossard récupéré (compte / gestion V2) + 'validequestion', // validation questions adhésion (inc_tableau_mail_questions) + 'actif', // oui/non listes rapports custom (+ cadeaux MEC) +); $blnComptePromoteur = in_array($action, $tabCompteActions, true) && $intComCompte > 0 && empty($_SESSION['usa_id']); @@ -95,6 +103,39 @@ if ($blnComptePromoteur) { )); exit; } + } elseif ($action === 'actif') { + // Listes rapports custom : table = men_id encodé — vérifier le droit rapport. + $intMenuRapport = intval(base64_decode(urldecode((string)($_REQUEST['table'] ?? '')))); + if ($intMenuRapport <= 0 || !fxSuperadmReportMenuAllowed($intMenuRapport)) { + echo json_encode(array( + 'state' => 'error', + 'message' => 'Accès refusé pour cette action.', + 'code' => 'forbidden', + )); + exit; + } + } elseif ($action === 'validequestion') { + // Page compte mail questions — le promoteur doit avoir un accès événement (legacy ou V2). + $blnOkQuestion = false; + $strEvePromoteur = (string)$db->fxGetVar( + 'SELECT com_eve_promoteur FROM inscriptions_comptes WHERE com_id = ' . $intComCompte . ' LIMIT 1' + ); + if (trim($strEvePromoteur) !== '') { + $blnOkQuestion = true; + } else { + if (!function_exists('fxEveAccesComHasV2')) { + require_once dirname(__DIR__) . '/php/inc_fx_eve_acces.php'; + } + $blnOkQuestion = fxEveAccesComHasV2($intComCompte); + } + if (!$blnOkQuestion) { + echo json_encode(array( + 'state' => 'error', + 'message' => 'Accès refusé pour cette validation.', + 'code' => 'forbidden', + )); + exit; + } } else { // Prefs rapport : ne jamais laisser le promoteur écrire un autre com_id $_REQUEST['key'] = $intComCompte;