// ─── Accès paramètres route ─────────────────────────────────────────────────── function route_param(string $key, mixed $default = null): mixed { return $GLOBALS['route_params'][$key] ?? $default; } // ─── Vérifier qu'un user est organisateur owner d'un event ─────────────────── function require_organizer_of_event(string $krbm_event_id): array { $user = api_require_role('organizer_owner', 'admin_support', 'admin_super'); // Admins ont accès à tout if (krbm_user_has_role($user['id'], 'admin_support') || krbm_user_has_role($user['id'], 'admin_super')) { $event = db_fetch('SELECT * FROM krbm_events WHERE krbm_event_id = ?', [$krbm_event_id]); if (!$event) api_error('ORDER_NOT_FOUND', 'Événement introuvable', 404); return $event; } // Organisateur : vérifier ownership $organizer = db_fetch('SELECT id FROM krbm_organizers WHERE user_id = ?', [$user['id']]); if (!$organizer) api_error('FORBIDDEN', 'Compte organisateur requis', 403); $event = db_fetch( 'SELECT * FROM krbm_events WHERE krbm_event_id = ? AND organizer_id = ?', [$krbm_event_id, $organizer['id']] ); if (!$event) api_error('ORDER_NOT_FOUND', 'Événement introuvable', 404); return $event; } // ─── Obtenir ou créer le profil organisateur de l'user courant ─────────────── function require_organizer(): array { $user = api_require_role('organizer_owner', 'admin_support', 'admin_super'); $org = db_fetch('SELECT * FROM krbm_organizers WHERE user_id = ?', [$user['id']]); if (!$org) { // Créer automatiquement le profil organisateur $id = db_insert( 'INSERT INTO krbm_organizers (user_id, status) VALUES (?,?)', [$user['id'], 'pending'] ); $org = db_fetch('SELECT * FROM krbm_organizers WHERE id = ?', [$id]); } return $org; }