Changeset 2248cd2 in Klonkt for src/routes/admin-settings.js


Ignore:
Timestamp:
06/16/2026 10:28:54 PM (3 months ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
e2a8e31
Parents:
221a209
Message:

Google login configurable in-app: Admin → Settings card (no .env required)

config/google.js now reads Client ID/Secret from app_settings (env = fallback),
dynamically (no restart needed). Redirect URI derived from PUBLIC_BASE_URL.
New "Google login (listeners)" card shows the redirect URI to register + fields
for Client ID/Secret + a disconnect option. Self-hosters no longer need to
edit .env.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/routes/admin-settings.js

    r221a209 r2248cd2  
    2323import { getTenancy, setTenancy, getSetting, setSetting } from '../services/SettingsService.js';
    2424import { entitlementStatus, premiumUnlocked } from '../services/PatreonService.js';
     25import { googleConfigured, redirectUri, currentClientId, clientSecretSet } from '../config/google.js';
    2526
    2627const router = express.Router();
     
    7677    hubHeroOverlay: clampOverlay(getSetting('hub_hero_overlay')),
    7778    premium: entitlementStatus(),
     79    google: {
     80      configured: googleConfigured(),
     81      redirectUri: redirectUri(),
     82      clientId: currentClientId(),
     83      secretSet: clientSecretSet(),
     84    },
    7885    success: req.query.success || null,
    7986    error: req.query.error || null,
     
    129136});
    130137
     138// Google-login (luisteraars) configureren — Client ID + Secret in app_settings.
     139// De redirect-URI leiden we af van PUBLIC_BASE_URL (zie config/google.js).
     140router.post('/google', requireGod, (req, res) => {
     141  if (req.body.clear === '1') {
     142    setSetting('google_client_id', '');
     143    setSetting('google_client_secret', '');
     144    return res.redirect('/admin/settings?success=' + encodeURIComponent('Google-login losgekoppeld'));
     145  }
     146  setSetting('google_client_id', (req.body.google_client_id || '').toString().trim());
     147  // Secret alleen overschrijven als er een nieuwe waarde is ingevoerd (leeg = laat staan).
     148  const secret = (req.body.google_client_secret || '').toString().trim();
     149  if (secret) setSetting('google_client_secret', secret);
     150  res.redirect('/admin/settings?success=' + encodeURIComponent('Google-login opgeslagen'));
     151});
     152
    131153export default router;
Note: See TracChangeset for help on using the changeset viewer.