From d55b70050207253cf73d6acb89514af21a23b3f8 Mon Sep 17 00:00:00 2001 From: Sam Geyskens Date: Thu, 5 Mar 2026 12:46:34 +0100 Subject: [PATCH] feat: enhance Google SSO management by adding save and clear buttons --- backend/templates/school_ict.html | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/backend/templates/school_ict.html b/backend/templates/school_ict.html index bb3e5a8..d3ec7b6 100644 --- a/backend/templates/school_ict.html +++ b/backend/templates/school_ict.html @@ -409,6 +409,8 @@ document.addEventListener('DOMContentLoaded', async () => { document.getElementById('btnConfirmUser') && bind('btnConfirmUser', 'click', addUser); document.getElementById('auditCategory') && bind('auditCategory', 'change', loadAuditLog); document.getElementById('auditSearch') && bind('auditSearch', 'input', loadAuditLog); + document.getElementById('btnSaveSso') && bind('btnSaveSso', 'click', saveSso); + document.getElementById('btnClearSso') && bind('btnClearSso', 'click', clearSso); // Redirect URI is altijd bekend — vul meteen in zodat het niet "Laden..." blijft const redirectEl = document.getElementById('redirectUriDisplay'); if (redirectEl) redirectEl.textContent = window.location.origin + '/auth/google/callback'; @@ -418,7 +420,7 @@ document.addEventListener('DOMContentLoaded', async () => { document.getElementById('schoolName').textContent = me.user?.school_name || ''; await loadUsers(); await loadKlassen(); - await loadSsoStatus(); + loadSsoStatus(me.user?.school); // geef school direct mee — geen extra API call nodig await loadAuditLog(); }); @@ -667,11 +669,14 @@ async function loadAuditLog(page = 1) { } // ── Google SSO beheer ───────────────────────────────────────────────────────── -async function loadSsoStatus() { - const res = await fetch('/admin/schools'); - if (!res.ok) return; - const data = await res.json(); - const school = (data.schools || []).find(s => s.id === mySchoolId); +async function loadSsoStatus(school) { + // Als geen school meegegeven: haal op via /api/me (school_ict heeft geen toegang tot /admin/schools) + if (!school) { + const res = await fetch('/api/me'); + if (!res.ok) return; + const data = await res.json(); + school = data.user?.school; + } const statusEl = document.getElementById('ssoStatus'); if (!statusEl || !school) return; @@ -716,7 +721,7 @@ async function saveSso() { document.getElementById('ssoClientId').value = ''; document.getElementById('ssoClientSecret').value = ''; notify('Google SSO ingesteld ✅', 'success'); - await loadSsoStatus(); + await loadSsoStatus(); // herlaadt via /api/me } async function clearSso() {