fix: session F5, terminal module core, logs proxmox
- router: tryRefresh() au premier chargement → plus besoin de se reconnecter après F5 (user restauré depuis le cookie refresh) - migration 003: terminal marqué is_core=1 + is_enabled=1 - proxmox.go: logs pour diagnostiquer l'erreur 502 (visible dans Paramètres → Logs) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
88831e3967
commit
1886071922
3 changed files with 11 additions and 1 deletions
|
|
@ -2,6 +2,7 @@
|
||||||
package api
|
package api
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
@ -49,12 +50,15 @@ func (h *ProxmoxHandler) initClient() {
|
||||||
url, _, _ := h.db.GetSetting("proxmox_url")
|
url, _, _ := h.db.GetSetting("proxmox_url")
|
||||||
encryptedToken, _, _ := h.db.GetSetting("proxmox_token")
|
encryptedToken, _, _ := h.db.GetSetting("proxmox_token")
|
||||||
if url == "" || encryptedToken == "" {
|
if url == "" || encryptedToken == "" {
|
||||||
|
log.Printf("[proxmox/init] Client non initialisé — proxmox_url=%q token_empty=%v", url, encryptedToken == "")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
token, err := h.encryptor.Decrypt(encryptedToken)
|
token, err := h.encryptor.Decrypt(encryptedToken)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
log.Printf("[proxmox/init] Impossible de déchiffrer le token : %v", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
log.Printf("[proxmox/init] Client initialisé — url=%s", url)
|
||||||
h.client = proxmox.NewClient(url, token)
|
h.client = proxmox.NewClient(url, token)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -71,6 +75,7 @@ func (h *ProxmoxHandler) GetResources(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
resources, err := h.client.GetResources("")
|
resources, err := h.client.GetResources("")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
log.Printf("[proxmox/resources] Erreur API : %v", err)
|
||||||
JSONError(w, "Erreur API Proxmox : "+err.Error(), http.StatusBadGateway)
|
JSONError(w, "Erreur API Proxmox : "+err.Error(), http.StatusBadGateway)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
||||||
3
backend/internal/db/migrations/003_terminal_core.sql
Normal file
3
backend/internal/db/migrations/003_terminal_core.sql
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
-- Migration 003 : Terminal marqué comme module CORE actif
|
||||||
|
-- Le terminal SSH est implémenté (api/terminal.go), il doit être core+enabled.
|
||||||
|
UPDATE modules SET is_core = 1, is_enabled = 1 WHERE id = 'terminal';
|
||||||
|
|
@ -92,9 +92,11 @@ const router = createRouter({
|
||||||
router.beforeEach(async (to) => {
|
router.beforeEach(async (to) => {
|
||||||
const authStore = useAuthStore()
|
const authStore = useAuthStore()
|
||||||
|
|
||||||
// Vérifier si l'application est installée (appel API au premier chargement)
|
// Au premier chargement : vérifier l'installation ET restaurer la session
|
||||||
if (!authStore.installChecked) {
|
if (!authStore.installChecked) {
|
||||||
await authStore.checkInstallation()
|
await authStore.checkInstallation()
|
||||||
|
// Restaurer la session depuis le cookie refresh si un token est en localStorage
|
||||||
|
await authStore.tryRefresh()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Rediriger vers l'installation si pas encore configuré
|
// Rediriger vers l'installation si pas encore configuré
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue