From 6594d276707f58809b4828e9319f2d45fcb57547 Mon Sep 17 00:00:00 2001 From: admin Date: Thu, 6 Aug 2026 16:34:59 +0000 Subject: [PATCH] fix(auth): App.tsx - use clearSession from session.ts, onLogin takes no args, check token via getToken() --- frontend/src/App.tsx | 41 ++++++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index b31e258..20f0ebc 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,6 +1,7 @@ import { useEffect, useState } from 'react'; import { InventoryPage } from './pages/InventoryPage'; import { LoginPage } from './pages/LoginPage'; +import { getToken, clearSession } from './lib/session'; import './app-shell.css'; type TabKey = 'overview' | 'inventory' | 'discovery' | 'topology' | 'options'; @@ -11,10 +12,36 @@ const tabs = [ { key: 'topology', label: 'Topology', description: 'Vista futura della mappa multilivello.' }, { key: 'options', label: 'Options', description: 'Utenti, impostazioni, servizi di sistema e sicurezza.' }, ] as const; -function ShellCard({ title, children, tone = 'default' }: { title: string; children: React.ReactNode; tone?: 'default' | 'accent' | 'warning' }) { return

{title}

{children}
; } -function OverviewTab(){ return
  • Frontend inventory collegato al backend.
  • Tree gerarchico e context panel attivi.
  • Navigazione tra parent, children e relazioni disponibile.
  • Reintegro layout persistente completato.
  • Roadmap di security e options introdotta.
  • Preparazione vista topology multilivello.
  • I moduli servizi confluiranno nel menu Options.
  • L'accesso dovrà essere autenticato prima delle integrazioni remote.
  • Serve hardening progressivo di sessione e permessi.
; } -function DiscoveryTab(){ return
  • Seed scan subnet.
  • Classificazione host e object binding.
  • Correlazione con relazioni inventory.
  • SNMP collector.
  • LLDP ingestion.
  • Port mapping inference.
; } -function TopologyTab(){ return
  • Vista fisica dispositivi.
  • Vista logica host / VM / container / app.
  • Layer networking e dipendenze.
  • Drag & drop dei contenitori.
  • Link fisici e logici cliccabili.
  • Focus node e highlight dei vicini.
; } -function OptionsTab(){ return
  • Utenti locali e ruoli applicativi.
  • Disattivazione account inattivi o non più autorizzati.
  • Storico accessi e audit trail amministrativo.
  • Parametri workspace e branding dell'istanza.
  • Configurazione discovery, inventory e policy future.
  • Feature flags per moduli sperimentali.
  • La sezione Servizi viene assorbita nel menu Options.
  • Qui confluiranno terminale remoto, job runner e integrazioni di sistema.
  • Ogni funzione sensibile dovrà essere protetta da permessi espliciti.
  • Login obbligatorio per tutte le viste non pubbliche.
  • MFA per admin e per funzioni ad alto impatto.
  • Controlli server-side su ogni richiesta, deny-by-default e audit centralizzato.
; } -function AppShell(){ const [activeTab,setActiveTab]=useState('inventory'); const currentTab=tabs.find((t)=>t.key===activeTab)!; return

{currentTab.label}

{currentTab.description}

Book of truthAuth roadmap
; } -export default function App(){ const [token,setToken]=useState(null); useEffect(()=>{const t=window.localStorage.getItem('nm_token'); if(t) setToken(t);},[]); const login=(nextToken:string)=>{window.localStorage.setItem('nm_token', nextToken); setToken(nextToken);}; const logout=()=>{window.localStorage.removeItem('nm_token'); setToken(null);}; if(!token) return ; return <>; } + +function ShellCard({ title, children, tone = 'default' }: { title: string; children: React.ReactNode; tone?: 'default' | 'accent' | 'warning' }) { + return

{title}

{children}
; +} +function OverviewTab() { return
  • Frontend inventory collegato al backend.
  • Tree gerarchico e context panel attivi.
  • Navigazione tra parent, children e relazioni disponibile.
  • Reintegro layout persistente completato.
  • Roadmap di security e options introdotta.
  • Preparazione vista topology multilivello.
  • I moduli servizi confluiranno nel menu Options.
  • L'accesso dovrà essere autenticato prima delle integrazioni remote.
  • Serve hardening progressivo di sessione e permessi.
; } +function DiscoveryTab() { return
  • Seed scan subnet.
  • Classificazione host e object binding.
  • Correlazione con relazioni inventory.
  • SNMP collector.
  • LLDP ingestion.
  • Port mapping inference.
; } +function TopologyTab() { return
  • Vista fisica dispositivi.
  • Vista logica host / VM / container / app.
  • Layer networking e dipendenze.
  • Drag & drop dei contenitori.
  • Link fisici e logici cliccabili.
  • Focus node e highlight dei vicini.
; } +function OptionsTab() { return
  • Utenti locali e ruoli applicativi.
  • Disattivazione account inattivi o non più autorizzati.
  • Storico accessi e audit trail amministrativo.
  • Parametri workspace e branding dell'istanza.
  • Configurazione discovery, inventory e policy future.
  • Feature flags per moduli sperimentali.
  • La sezione Servizi viene assorbita nel menu Options.
  • Qui confluiranno terminale remoto, job runner e integrazioni di sistema.
  • Ogni funzione sensibile dovrà essere protetta da permessi espliciti.
  • Login obbligatorio per tutte le viste non pubbliche.
  • MFA per admin e per funzioni ad alto impatto.
  • Controlli server-side su ogni richiesta, deny-by-default e audit centralizzato.
; } + +function AppShell() { + const [activeTab, setActiveTab] = useState('inventory'); + const currentTab = tabs.find((t) => t.key === activeTab)!; + return

{currentTab.label}

{currentTab.description}

Book of truthAuth active
; +} + +export default function App() { + const [loggedIn, setLoggedIn] = useState(false); + + useEffect(() => { + const t = getToken(); + if (t) setLoggedIn(true); + }, []); + + const handleLogin = () => setLoggedIn(true); + + const handleLogout = () => { + clearSession(); + setLoggedIn(false); + }; + + if (!loggedIn) return ; + return <>; +}