diff --git a/admin.php b/admin.php
index 34991d2..23182a7 100644
--- a/admin.php
+++ b/admin.php
@@ -5,11 +5,13 @@ require_once __DIR__ . '/db/auth.php';
auth_start_session();
auth_bootstrap();
-if (!auth_is_admin()) {
+if (!auth_is_logged_in()) {
header('Location: index.php');
exit;
}
+$is_admin = auth_is_admin();
+
$flash = auth_flash_get();
$flash_type = $flash['type'] ?? '';
$flash_message = $flash['message'] ?? '';
@@ -29,6 +31,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$admin_action = (string) ($_POST['admin_action'] ?? '');
+ if (!$is_admin) {
+ auth_flash_set('error', 'Seul un administrateur peut gérer les utilisateurs.');
+ header('Location: admin.php');
+ exit;
+ }
+
if ($admin_action === 'create') {
$submitted_cl_auth_user = trim((string) ($_POST['cl_auth_user'] ?? ''));
$submitted_cl_auth_pass = (string) ($_POST['cl_auth_pass'] ?? '');
@@ -221,7 +229,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
}
}
-if ($edit_cl_auth_id > 0) {
+if ($is_admin && $edit_cl_auth_id > 0) {
$stmt_edit_user = db()->prepare('SELECT cl_auth_id, cl_auth_user, cl_auth_pass, cl_auth_right FROM tbl_auth WHERE cl_auth_id = :cl_auth_id LIMIT 1');
$stmt_edit_user->execute([
'cl_auth_id' => $edit_cl_auth_id,
@@ -242,8 +250,32 @@ if ($edit_cl_auth_id > 0) {
}
}
-$stmt_users = db()->query('SELECT cl_auth_id, cl_auth_user, cl_auth_pass, cl_auth_right FROM tbl_auth ORDER BY cl_auth_user ASC');
-$tbl_auth_all = $stmt_users->fetchAll();
+$tbl_auth_all = [];
+if ($is_admin) {
+ $stmt_users = db()->query('SELECT cl_auth_id, cl_auth_user, cl_auth_pass, cl_auth_right FROM tbl_auth ORDER BY cl_auth_user ASC');
+ $tbl_auth_all = $stmt_users->fetchAll();
+}
+
+$member_accessible_items = [];
+if (!$is_admin) {
+ foreach (auth_navigation_items() as $item) {
+ $file = (string) ($item['file'] ?? '');
+ $label = (string) ($item['label'] ?? $file);
+ $admin_only = !empty($item['admin_only']);
+
+ if ($admin_only) {
+ continue;
+ }
+
+ if (auth_user_can_access_page($file, $label)) {
+ $member_accessible_items[] = [
+ 'file' => $file,
+ 'label' => $label,
+ ];
+ }
+ }
+}
+
$csrf_token = auth_csrf_token();
[$default_admin_user, $default_admin_password] = auth_default_admin_credentials();
$current_session_user = isset($_SESSION['user']) ? (string) $_SESSION['user'] : '';
@@ -509,26 +541,23 @@ $current_session_user = isset($_SESSION['user']) ? (string) $_SESSION['user'] :
/ )
Vous êtes bien entré dans la zone admin avec un compte membre.
+La gestion des utilisateurs reste réservée aux administrateurs, mais vous pouvez utiliser ci-dessous les pages qui vous ont été ouvertes.
+ + +