Index: src/routes/posts.js
===================================================================
--- src/routes/posts.js	(revision acbc9fc37db938981585559eac40eda58373493e)
+++ src/routes/posts.js	(revision b1b765257cdbf35042bd15d214253011fbbd295e)
@@ -1278,4 +1278,5 @@
     pageTitle: 'Connect', bodyClass: 'on-special',
     connections, myGuardians, followRequests,
+    approveFollowers: !!(site && site.approve_followers),
     // Na een verhuizing staat de uitgaande kant op slot. Dat hoort te blijken
     // VOORDAT je op een knop drukt, niet daarna uit een foutmelding.
@@ -1295,4 +1296,16 @@
     ? 'success=' + encodeURIComponent('Volger verwijderd')
     : 'error=' + encodeURIComponent('Volger niet gevonden')));
+});
+
+// De poort zelf aan- of uitzetten, op de plek waar de verzoeken toch al
+// staan (Robins wens, 18-8: "op de connect is logischer").
+router.post('/connect/approve-followers', requireSiteManager, (req, res) => {
+  const site = res.locals.site;
+  const base = res.locals.siteUrlBase || '';
+  if (site) {
+    db.prepare('UPDATE sites SET approve_followers = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?')
+      .run(req.body.on ? 1 : 0, site.id);
+  }
+  return res.redirect(`${base}/connect`);
 });
 
