Qualys deploy: bouton 'Sauvegarder ces valeurs' (ActivationId/Customer/Uri persistes)

This commit is contained in:
Pierre & Lumière 2026-04-15 13:34:24 +02:00
parent 0ebf72d789
commit a3a1ec7e6d
2 changed files with 59 additions and 0 deletions

View File

@ -977,6 +977,32 @@ async def qualys_deploy_page(request: Request, db=Depends(get_db)):
return templates.TemplateResponse("qualys_deploy.html", ctx)
@router.post("/qualys/deploy/save-settings")
async def qualys_deploy_save_settings(request: Request, db=Depends(get_db)):
"""Sauvegarde activation_id_linux/customer_id/server_uri sans lancer de deploiement."""
from fastapi.responses import JSONResponse
user = get_current_user(request)
if not user:
return JSONResponse({"ok": False}, status_code=401)
perms = get_user_perms(db, user)
if not can_edit(perms, "qualys"):
return JSONResponse({"ok": False, "msg": "Permission refusee"}, status_code=403)
from ..services.secrets_service import set_secret
body = await request.json()
saved = []
try:
for key in ("qualys_activation_id_linux", "qualys_activation_id_windows",
"qualys_customer_id", "qualys_server_uri"):
val = (body.get(key) or "").strip()
if val:
set_secret(db, key, val, f"Save manuelle depuis /qualys/deploy")
saved.append(key)
db.commit()
return JSONResponse({"ok": True, "saved": saved, "msg": f"{len(saved)} valeur(s) sauvegardee(s)"})
except Exception as e:
return JSONResponse({"ok": False, "msg": str(e)[:200]}, status_code=500)
@router.post("/qualys/deploy/run")
async def qualys_deploy_run(request: Request, db=Depends(get_db)):
from fastapi.responses import JSONResponse

View File

@ -42,6 +42,10 @@
<input type="text" id="server_uri" value="{{ server_uri }}" class="w-full text-xs" style="font-family:monospace">
</div>
</div>
<div class="mt-3 flex gap-2 items-center">
<button type="button" onclick="saveSettings()" class="btn-sm bg-cyber-green text-black px-3 py-1">💾 Sauvegarder ces valeurs</button>
<span id="save-msg" class="text-xs"></span>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 gap-3 mt-3">
<div>
<label class="text-xs text-gray-500 block mb-1">Package DEB (Debian/Ubuntu)</label>
@ -197,6 +201,35 @@
</div>
<script>
function saveSettings() {
var msg = document.getElementById('save-msg');
var actLin = (document.getElementById('activation_id_linux') || {}).value || '';
var actWin = (document.getElementById('activation_id_windows') || {}).value || '';
var cust = (document.getElementById('customer_id') || {}).value || '';
var uri = (document.getElementById('server_uri') || {}).value || '';
msg.textContent = 'Sauvegarde...';
msg.style.color = '#888';
fetch('/qualys/deploy/save-settings', {
method:'POST',
headers:{'Content-Type':'application/json'},
credentials:'same-origin',
body: JSON.stringify({
qualys_activation_id_linux: actLin,
qualys_activation_id_windows: actWin,
qualys_customer_id: cust,
qualys_server_uri: uri
})
})
.then(function(r){return r.json();})
.then(function(d){
if (d.ok) { msg.textContent = '✓ ' + d.msg; msg.style.color = '#8f8'; }
else { msg.textContent = 'Erreur: ' + (d.msg || 'inconnue'); msg.style.color = '#f88'; }
})
.catch(function(e){
msg.textContent = 'Erreur reseau: ' + e.message; msg.style.color = '#f88';
});
}
var _pollTimer = null;
var _checkTimer = null;