diff --git a/.gitmodules b/.gitmodules
index 1838380..b53d0d8 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,4 +1,4 @@
[submodule "cmdb"]
path = cmdb
- url = ssh://git@git.thehackdes.com/TheHackdes/Noctame.git
+ url = https://git.thehackdes.com/TheHackdes/Noctame.git
branch = dev
diff --git a/switch-config/switch_vlan_mapper.html b/switch-config/switch_vlan_mapper.html
index 999d3e7..7083125 100644
--- a/switch-config/switch_vlan_mapper.html
+++ b/switch-config/switch_vlan_mapper.html
@@ -596,7 +596,6 @@ button:active { transform: scale(0.98); }
background: #101216; color: #d4d4d4;
}
-
@@ -608,6 +607,7 @@ button:active { transform: scale(0.98); }
◧
CMDBMachines, réseaux, salles
🔐
Générateur certificatsClés RSA, CSR, SSL
🔌
Configuration switchVLANs, export config
+ 🔑
Mots de passeGénérateur & envoi
⚙
PréférencesTypes, tickets, réglages
@@ -810,51 +810,35 @@ const DEFAULT_VLAN_DATABASE = `1 = Native = #8B5CF6
200 = VLAN200 = #16A34A
300 = VLAN300 = #0EA5E9`;
-// Charger la base de données VLAN au démarrage
-function loadVlanDatabase() {
- // 1️⃣ Chercher d'abord dans localStorage (changements sauvegardés par l'utilisateur)
- const savedDbText = localStorage.getItem('vlanDatabaseText');
- if (savedDbText) {
- parseVlanDatabase(savedDbText);
- console.log('✓ Base de données chargée depuis le stockage local');
- return;
- }
-
- // 2️⃣ Vérifier si vlan_database.js a été chargé (fonctionne en mode file://)
- if (typeof VLAN_DATABASE_FILE !== 'undefined') {
- parseVlanDatabase(VLAN_DATABASE_FILE);
- localStorage.setItem('vlanDatabaseText', VLAN_DATABASE_FILE);
- console.log('✓ Base de données chargée depuis vlan_database.js');
- return;
- }
-
- // 3️⃣ Essayer de charger depuis le fichier externe (serveur HTTP uniquement)
+// Charger la base de données VLAN au démarrage.
+// Source de vérité : la table `networks` de la CMDB (SQL), exposée par le
+// portail via GET /api/vlans. Chaque réseau CMDB portant un numéro de VLAN
+// devient une entrée (nom + couleur). Remplace l'ancien vlan_database.js.
+// Replis (mode file:// ou serveur injoignable) : base par défaut intégrée.
+async function loadVlanDatabase() {
if (!location.href.startsWith('file://')) {
- const xhr = new XMLHttpRequest();
- xhr.open('GET', 'vlan_database.txt', true);
- xhr.onload = function() {
- if (xhr.status === 200) {
- parseVlanDatabase(xhr.responseText);
- localStorage.setItem('vlanDatabaseText', xhr.responseText);
- console.log('✓ Base de données chargée depuis vlan_database.txt');
- } else {
- loadDefaultDatabase();
- }
- };
- xhr.onerror = function() {
- loadDefaultDatabase();
- };
-
try {
- xhr.send();
- return;
+ const res = await fetch('/api/vlans', { cache: 'no-store' });
+ if (res.ok) {
+ const rows = await res.json();
+ vlanDatabase = {};
+ rows.forEach(r => {
+ if (r.vlan === null || r.vlan === undefined || r.vlan === '') return;
+ vlanDatabase[String(r.vlan)] = {
+ name: r.name || `VLAN_${r.vlan}`,
+ color: r.color || '#8B5CF6'
+ };
+ });
+ console.log(`✓ ${Object.keys(vlanDatabase).length} VLAN(s) chargés depuis la CMDB (table networks)`);
+ return;
+ }
+ console.warn('CMDB /api/vlans a répondu', res.status, '→ base VLAN par défaut');
} catch (error) {
- loadDefaultDatabase();
+ console.warn('CMDB injoignable, base VLAN par défaut :', error);
}
- } else {
- // Mode file:// et aucun vlan_database.js trouvé - utiliser DB par défaut
- loadDefaultDatabase();
}
+ // Mode file:// ou serveur indisponible : base par défaut intégrée
+ loadDefaultDatabase();
}
function loadDefaultDatabase() {
@@ -2475,8 +2459,10 @@ window.addEventListener('resize', () => {
});
// Charger la base de données au démarrage
-window.addEventListener('load', () => {
- loadVlanDatabase();
+window.addEventListener('load', async () => {
+ // Attendre les VLANs (table networks CMDB) avant toute analyse : une conf
+ // reçue via le hash s'analyse aussitôt et a besoin des noms/couleurs.
+ await loadVlanDatabase();
syncCmdbDbStatus(); // version de la base CMDB (partagée via localStorage)
// Config transmise par la CMDB via l'URL (#cfg=...) : pré-remplir et analyser
diff --git a/switch-config/vlan_database.js b/switch-config/vlan_database.js
deleted file mode 100644
index 0c72c3b..0000000
--- a/switch-config/vlan_database.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Fichier de base de données VLAN - À charger dans le HTML
-// Placer ce fichier dans le même dossier que switch_vlan_mapper.html
-// Format :
= = (exemple générique, à adapter)
-
-const VLAN_DATABASE_FILE = `10 = MGMT = #6366f1
-20 = SERVERS = #22c55e
-30 = USERS = #06b6d4
-40 = VOICE = #2dd4bf
-50 = DMZ = #8b5cf6
-99 = GUEST = #f97316
-`;