Changeset e9128bc in Klonkt for src/routes
- Timestamp:
- 08/14/2026 02:12:31 AM (4 weeks ago)
- Branches:
- main
- Children:
- fc664ce
- Parents:
- dc802b4
- Location:
- src/routes
- Files:
-
- 2 edited
-
admin-migrate.js (modified) (6 diffs)
-
admin-sites.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/routes/admin-migrate.js
rdc802b4 re9128bc 35 35 import { buildArchive, zipArchive } from '../services/ArchiveExportService.js'; 36 36 import { readArchiveZip, importArchive } from '../services/ArchiveImportService.js'; 37 import { parseApAliases } from './admin-sites.js'; 38 import db from '../config/database.js'; 37 39 38 40 const router = express.Router(); … … 72 74 } 73 75 76 /** De aliassen als tekst, een per regel, zoals het invoerveld ze wil. */ 77 function aliasTekst(site) { 78 try { return (JSON.parse((site && site.ap_aliases) || '[]') || []).join('\n'); } catch { return ''; } 79 } 80 74 81 /** 75 82 * Waar zouden we vandaan kunnen halen? De alias die we zelf claimen (FEP-7628 … … 94 101 telling, fout, mb, 95 102 verslag: null, 96 bron: bronKandidaat(site), 103 bron: bronKandidaat(site), aliassen: aliasTekst(site), movedTo: (site && site.moved_to) || null, 97 104 mig: site ? Migration.migrationStatus(site.slug) : null, 98 105 haalVerslag: null, … … 133 140 pageTitle: 'Migreren', bodyClass: 'on-special', 134 141 telling, fout: null, mb, verslag: null, 135 bron: opgegeven || bronKandidaat(site), 142 bron: opgegeven || bronKandidaat(site), aliassen: aliasTekst(site), movedTo: site.moved_to || null, 136 143 mig: Migration.migrationStatus(site.slug), 137 144 haalVerslag: r, … … 139 146 error: null, 140 147 }); 148 }); 149 150 /** 151 * Je oude account claimen (FEP-7628 alsoKnownAs). 152 * 153 * Stond op de site-bewerkpagina, tussen de kleuren en de feedinstellingen. Maar 154 * dit is stap EEN van een verhuizing, en zonder deze claim weigert de oude 155 * instantie de Move met `no_backreference`. Het hoort dus hier, boven de knop 156 * die hem nodig heeft. 157 */ 158 router.post('/aliases', requireGod, async (req, res) => { 159 const site = res.locals.site; 160 if (!site) return res.redirect('/admin/migrate?error=' + encodeURIComponent('Geen site')); 161 const base = (process.env.PUBLIC_BASE_URL || '').replace(/\/+$/, ''); 162 let lijst; 163 try { 164 lijst = await parseApAliases(req.body.ap_aliases, ActivityPubService.actorId(base, site.slug)); 165 } catch (e) { 166 // Welke regel niet deugde, niet alleen DAT er iets niet deugde. 167 return res.redirect('/admin/migrate?error=' + encodeURIComponent(`Onbruikbaar adres: ${e && e.message}`)); 168 } 169 db.prepare('UPDATE sites SET ap_aliases = ? WHERE slug = ?').run(JSON.stringify(lijst), site.slug); 170 res.redirect('/admin/migrate?success=' + encodeURIComponent( 171 lijst.length ? `${lijst.length} adres(sen) opgeslagen als jouw vorige account.` : 'Aliassen leeggemaakt.')); 141 172 }); 142 173 … … 195 226 pageTitle: 'Migreren', bodyClass: 'on-special', 196 227 telling: tellen(site).telling, fout: null, mb, 197 bron: bronKandidaat(site), mig: Migration.migrationStatus(site.slug), haalVerslag: null, 228 bron: bronKandidaat(site), aliassen: aliasTekst(site), movedTo: site.moved_to || null, 229 mig: Migration.migrationStatus(site.slug), haalVerslag: null, 198 230 verslag: verslag ? { ...verslag, echt, overschrijf, bestand: req.file.originalname, bytes: req.file.buffer.length } : null, 199 231 success: (echt && verslag && !fout) ? 'Archief geïmporteerd' : null, -
src/routes/admin-sites.js
rdc802b4 re9128bc 80 80 * Move fail at the old server with no hint why. Throws the offending line. 81 81 */ 82 async function parseApAliases(raw, ownActorUri) {82 export async function parseApAliases(raw, ownActorUri) { 83 83 const lines = String(raw || '').split(/\r?\n/).map((s) => s.trim()).filter(Boolean); 84 84 if (lines.length > 5) throw new Error(lines[5] + ' (max 5)'); … … 332 332 // FEP-7628 aliases — validated/resolved before anything is written. 333 333 const base = (process.env.PUBLIC_BASE_URL || '').replace(/\/+$/, ''); 334 let apAliasesJson = null; 335 try { 336 const arr = await parseApAliases(f.ap_aliases, AP.actorId(base, req.params.slug)); 337 apAliasesJson = arr.length ? JSON.stringify(arr) : null; 338 } catch (e) { 339 return res.redirect(`/admin/sites/${req.params.slug}/edit?error=` + encodeURIComponent(`Alias niet herkend of niet vindbaar: ${e.message}`)); 334 // Het INVOERVELD staat hier sinds 14-8 niet meer: aliassen horen bij 335 // Migreren. Dit formulier mag ze dus niet aanraken, en al helemaal niet 336 // leegmaken omdat het veld ontbreekt. Anders verlies je je claim op je oude 337 // account door je kleuren aan te passen, en weigert de Move daarna met 338 // no_backreference. Alleen verwerken als het veld ECHT is meegestuurd, zodat 339 // een oude gecachte pagina die hem nog wel heeft blijft werken. 340 let apAliasesJson = site.ap_aliases || null; 341 if (Object.prototype.hasOwnProperty.call(f, 'ap_aliases')) { 342 try { 343 const arr = await parseApAliases(f.ap_aliases, AP.actorId(base, req.params.slug)); 344 apAliasesJson = arr.length ? JSON.stringify(arr) : null; 345 } catch (e) { 346 return res.redirect(`/admin/sites/${req.params.slug}/edit?error=` + encodeURIComponent(`Alias niet herkend of niet vindbaar: ${e.message}`)); 347 } 340 348 } 341 349
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)