diff --git a/php/inc_fonctions_sl.php b/php/inc_fonctions_sl.php index 8253bc0..bcd0ef6 100644 --- a/php/inc_fonctions_sl.php +++ b/php/inc_fonctions_sl.php @@ -194,6 +194,44 @@ function fxAdminCanUsePermInspectTools() { return !empty($_SESSION['usa_id']); } +/** + * MSIN-4401 — Créer / modifier / supprimer les définitions de kits (pas l'assignation). + * Liste blanche courriel ou login (session usa_info = inscriptions_comptes). + */ +function fxAdminCanEditEveAccesKits() { + if (empty($_SESSION['usa_id']) || empty($_SESSION['usa_info']) || !is_array($_SESSION['usa_info'])) { + return false; + } + + static $arrAllow = array( + 'stephan@progiweb.ca', + ); + + $arrNorm = array(); + foreach ($arrAllow as $strItem) { + $strItem = strtolower(trim((string)$strItem)); + if ($strItem !== '') { + $arrNorm[$strItem] = true; + } + } + if (count($arrNorm) === 0) { + return false; + } + + $arrCandidates = array( + strtolower(trim((string)($_SESSION['usa_info']['com_courriel'] ?? ''))), + strtolower(trim((string)($_SESSION['usa_info']['com_login'] ?? ''))), + ); + + foreach ($arrCandidates as $strCand) { + if ($strCand !== '' && isset($arrNorm[$strCand])) { + return true; + } + } + + return false; +} + function fxAdminPermInspectModeActive() { return fxAdminCanUsePermInspectTools() && !empty($_SESSION['ms1_perm_inspect_mode']); } diff --git a/superadm/eve_acces.php b/superadm/eve_acces.php index 663ffbf..4b675ab 100644 --- a/superadm/eve_acces.php +++ b/superadm/eve_acces.php @@ -20,6 +20,16 @@ $strError = ''; $intRoleId = isset($_GET['id']) ? intval($_GET['id']) : 0; if (isset($_GET['action'])) { + switch ($_GET['action']) { + case 'duplicate': + case 'toggle': + case 'delete': + if (!fxAdminCanEditEveAccesKits()) { + header('Location: eve_acces.php?p=kits&err=' . urlencode('Modification des kits réservée.')); + exit; + } + break; + } switch ($_GET['action']) { case 'duplicate': if ($intRoleId <= 0) { @@ -60,6 +70,10 @@ if (isset($_GET['action'])) { } if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['action'] ?? '') === 'save_kit') { + if (!fxAdminCanEditEveAccesKits()) { + header('Location: eve_acces.php?p=kits&err=' . urlencode('Modification des kits réservée.')); + exit; + } $intRoleId = intval($_POST['role_id'] ?? 0); $arrResult = fxEveAccesAdminSaveRole($_POST, $_POST['perm_keys'] ?? array()); if ($arrResult['state'] === 'ok') { @@ -119,6 +133,12 @@ include('inc_header.php'); if ($strFlash !== '' && $strError === '') { echo '