Changeset bfe4a55 in Klonkt for src/routes/posts.js


Ignore:
Timestamp:
08/08/2026 12:45:53 AM (5 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
4f97b70
Parents:
457e87b
git-author:
Robin <roboburr@…> (08/08/2026 12:45:39 AM)
git-committer:
Robin <roboburr@…> (08/08/2026 12:45:53 AM)
Message:

De playlist-poort opent alleen bestanden van de eigen site (shaer-ayc)

setAudioFediOpen opende de playlist-tak zonder site-check, terwijl de track-
en album-tak er wel een hadden. playlists.id is een globale sleutel, dus een
post op site A met [[playlist:x]] van site B zette de bestanden van B open --
en fedi_open is eenrichtings, dus dat draai je niet terug.

Het filter zit op de TRACKS, niet op de playlist: ook een vreemde track in je
eigen playlist is niet van jou. De test bewaakt dat verschil, plus de eigen
track als vangrail tegen een "fix" die de tak stilzet.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/routes/posts.js

    r457e87b rbfe4a55  
    284284    for (const m of c.matchAll(/\[\[track:([A-Za-z0-9_-]+)\]\]/g)) db.prepare('UPDATE audio_tracks SET fedi_open = 1 WHERE id = ? AND site_id = ?').run(m[1], siteId);
    285285    for (const m of c.matchAll(/\[\[album:([^\]]+)\]\]/g)) db.prepare('UPDATE audio_tracks SET fedi_open = 1 WHERE site_id = ? AND album = ?').run(siteId, m[1].trim());
    286     for (const m of c.matchAll(/\[\[playlist:([A-Za-z0-9_-]+)\]\]/g)) db.prepare('UPDATE audio_tracks SET fedi_open = 1 WHERE id IN (SELECT track_id FROM playlist_tracks WHERE playlist_id = ?)').run(m[1]);
     286    // playlists.id is a GLOBAL key, so the site filter has to sit on the tracks: without it a
     287    // post on site A embedding site B's playlist would open B's files — permanently.
     288    for (const m of c.matchAll(/\[\[playlist:([A-Za-z0-9_-]+)\]\]/g)) db.prepare('UPDATE audio_tracks SET fedi_open = 1 WHERE site_id = ? AND id IN (SELECT track_id FROM playlist_tracks WHERE playlist_id = ?)').run(siteId, m[1]);
    287289  } catch { /* non-fatal */ }
    288290}
Note: See TracChangeset for help on using the changeset viewer.