Fix lost form submissions on archives, the unlocked update finish and six more

Update Symfony to 7.4.23 (12 advisories in 8 packages).

- A form can be sent from /beitraege, /kategorie/... and /schlagwort/...;
  it answered 404 before anything was stored or mailed.
- Booleans reach the database as integers, so MySQL in strict mode
  accepts form submissions, task switches and plugin states.
- A stepped form with a required multiple choice shows its message
  instead of stopping on a TypeError.
- The second update step runs under the update lock; a concurrent
  finish no longer rolls a successful update back.
- Accordion entries and gallery images can be selected from the
  editor panel again.
- Category and tag names are escaped in the archive heading.
- Restoring a published page from the bin needs the publisher role.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
This commit is contained in:
kantarciandClaude Fable 5.2 committed 2026-11-10 11:15:49 +01:00
1 parent 441e629e80
commit d464c82ac8
17 files changed
+324 -168

No files matched your search

+12
View File
@@ -931,6 +931,18 @@ final class CmsTest extends TestCase
self::assertStringContainsString('href="https://cms.test/beitraege"', $html);
}
public function testACategoryNameIsPrintedAsTextInItsArchiveHeading(): void
{
// Die Überschrift des Archivs läuft durch den Baustein „Überschrift“, der seinen Text als
// Markup druckt. Ein Kategoriename ist aber ungefilterter Text eines Redakteurs.
$beitrag = $this->publishedPost('markup', 'Markup', '2026-02-01', ['Bau & <img src="https://example.org/x.png"> Technik']);
$href = $this->posts->termsFor($beitrag)['category'][0]['href'];
$html = $this->request($href)->getContent();
self::assertStringNotContainsString('<img src="https://example.org/x.png">', $html);
self::assertStringContainsString('Bau &amp; &lt;img src=&quot;https://example.org/x.png&quot;&gt; Technik</h1>', $html);
}
public function testCategoriesAndTagsGroupPostsAndGetTheirOwnArchives(): void
{
$projekt = $this->publishedPost('kanttresor', 'KantTresor', '2026-02-01', ['Projekte'], ['WordPress', 'DSGVO']);