<feed xmlns='http://www.w3.org/2005/Atom'>
<title>FreshRSS (Customized)/app/Controllers, branch 1.27.1</title>
<subtitle>Customized version of FreshRSS, a self-hosted RSS feed aggregator</subtitle>
<id>https://git.rdnlsmith.com/fresh-rss-custom/atom?h=1.27.1</id>
<link rel='self' href='https://git.rdnlsmith.com/fresh-rss-custom/atom?h=1.27.1'/>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/'/>
<updated>2025-09-25T19:52:29+00:00</updated>
<entry>
<title>Prevent logout CSRFs (#7999)</title>
<updated>2025-09-25T19:52:29+00:00</updated>
<author>
<name>Inverle</name>
<email>inverle@proton.me</email>
</author>
<published>2025-09-25T19:52:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=f8b2b8c4153f8acdb4267a269ada27f8af22d7d9'/>
<id>urn:sha1:f8b2b8c4153f8acdb4267a269ada27f8af22d7d9</id>
<content type='text'>
By avoiding `FreshRSS_Context::initUser()` calls</content>
</entry>
<entry>
<title>Fix some CSRFs (#8000)</title>
<updated>2025-09-24T10:13:40+00:00</updated>
<author>
<name>Inverle</name>
<email>inverle@proton.me</email>
</author>
<published>2025-09-24T10:13:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=f612a560d28a31095c27c130e84bf6ff39f061f5'/>
<id>urn:sha1:f612a560d28a31095c27c130e84bf6ff39f061f5</id>
<content type='text'>
In two bookmark actions and one in `entryController`

Completes one TODO from #7923:

https://github.com/FreshRSS/FreshRSS/blob/de624dc8ce63ec819c61216d9d44f828841c293e/app/Controllers/entryController.php#L257

(a POST request is already sent in the frontend)</content>
</entry>
<entry>
<title>Add option for CSP frame-ancestors (#7857)</title>
<updated>2025-09-21T11:29:58+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-09-21T11:29:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=bc3e4c8fa4bae9591166e12caa3fb6bf73893102'/>
<id>urn:sha1:bc3e4c8fa4bae9591166e12caa3fb6bf73893102</id>
<content type='text'>
* Add option for CSP frame-ancestors
https://github.com/FreshRSS/FreshRSS/discussions/7856

* Revert contentSelectorPreviewAction

* Same for f.php and api

* Fix double init in f.php

* No sandbox for API page</content>
</entry>
<entry>
<title>Move update one step before (#7989)</title>
<updated>2025-09-21T10:40:40+00:00</updated>
<author>
<name>Inverle</name>
<email>inverle@proton.me</email>
</author>
<published>2025-09-21T10:40:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=f2c6942a60189913e4a2ebe955d765050d53bc14'/>
<id>urn:sha1:f2c6942a60189913e4a2ebe955d765050d53bc14</id>
<content type='text'>
Closes https://github.com/FreshRSS/FreshRSS/issues/7897</content>
</entry>
<entry>
<title>Add `entry_before_update` and `entry_before_add` hooks (#7977)</title>
<updated>2025-09-18T21:44:17+00:00</updated>
<author>
<name>KleinMann</name>
<email>47398070+rnkln@users.noreply.github.com</email>
</author>
<published>2025-09-18T21:44:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=d670bf1e72d92c3bbeeca874f6a042f4e3a74007'/>
<id>urn:sha1:d670bf1e72d92c3bbeeca874f6a042f4e3a74007</id>
<content type='text'>
Discussion: https://github.com/FreshRSS/FreshRSS/discussions/7973

Changes proposed in this pull request:

- Add new extension hook "entry_before_add"
- Add new extension hook "entry_before_update"

How to test the feature manually:

1. Create extension that uses the hooks and confirm they are invoked correctly.

Extension to use for testing
https://github.com/rnkln/freshrss-xExtension-Discord/pull/2
</content>
</entry>
<entry>
<title>Keep sort and order after marking as read (#7974)</title>
<updated>2025-09-17T12:03:00+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-09-17T12:03:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=b5ee1d8936f64178b88eb289babafa020c24085d'/>
<id>urn:sha1:b5ee1d8936f64178b88eb289babafa020c24085d</id>
<content type='text'>
fix https://github.com/FreshRSS/FreshRSS/issues/7867</content>
</entry>
<entry>
<title>Clarify: Visibility hidden vs. archived (#7970)</title>
<updated>2025-09-15T21:43:46+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-09-15T21:43:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=f8310a587c26b0965bab71abfeb2d018e414f572'/>
<id>urn:sha1:f8310a587c26b0965bab71abfeb2d018e414f572</id>
<content type='text'>
fix https://github.com/FreshRSS/FreshRSS/issues/7887
We have two concepts: how much a feed is shown or not (controlled by priority), and how often a feed is refreshed (or not, in which case it is archived).
This PR removes the wording *Archived* from the *visibility* parameter, since this is not what it does.</content>
</entry>
<entry>
<title>Fix another user self-delete regression (#7877)</title>
<updated>2025-09-15T20:17:14+00:00</updated>
<author>
<name>Inverle</name>
<email>inverle@proton.me</email>
</author>
<published>2025-09-15T20:17:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=ddb51c0e95074c6fbddade547ca267801177bb01'/>
<id>urn:sha1:ddb51c0e95074c6fbddade547ca267801177bb01</id>
<content type='text'>
Regression from #7763 
Earlier regression which was fixed before #7626

In addition:
* get rid of `data-toggle` (refactor)
* show invalid login message if deleting account and entered incorrect password instead of redirect to 403
* remove unused reference to `r` parameter
* `forgetOpenCategories()` on login not on any crypto form
</content>
</entry>
<entry>
<title>Recovery: skip broken entries during CLI export/import (#7949)</title>
<updated>2025-09-14T20:36:01+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-09-14T20:36:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=29446a29f58b484817e6c9798c736e5f531c21ee'/>
<id>urn:sha1:29446a29f58b484817e6c9798c736e5f531c21ee</id>
<content type='text'>
* Recovery: skip broken entries during CLI export/import
fix https://github.com/FreshRSS/FreshRSS/discussions/7927

```
25605/25605 (48 broken)
```

Help with *database malformed* or other corruption.

* Compatibility multiple databases</content>
</entry>
<entry>
<title>Use `Minz_Translate::exists()` for language check in `createUser()` (#7934)</title>
<updated>2025-09-09T21:11:38+00:00</updated>
<author>
<name>Inverle</name>
<email>inverle@proton.me</email>
</author>
<published>2025-09-09T21:11:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=087df1e5d990cb9464bf1ac7f36f136c64d9dd2e'/>
<id>urn:sha1:087df1e5d990cb9464bf1ac7f36f136c64d9dd2e</id>
<content type='text'>
(consistency)
Related / follow-up: #7878
</content>
</entry>
</feed>
