<feed xmlns='http://www.w3.org/2005/Atom'>
<title>FreshRSS (Customized)/app/Controllers/userController.php, branch edge</title>
<subtitle>Customized version of FreshRSS, a self-hosted RSS feed aggregator</subtitle>
<id>https://git.rdnlsmith.com/fresh-rss-custom/atom?h=edge</id>
<link rel='self' href='https://git.rdnlsmith.com/fresh-rss-custom/atom?h=edge'/>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/'/>
<updated>2026-01-24T14:31:43+00:00</updated>
<entry>
<title>Message for closed registration  (#8462)</title>
<updated>2026-01-24T14:31:43+00:00</updated>
<author>
<name>rupak</name>
<email>nnew234567@gmail.com</email>
</author>
<published>2026-01-24T14:31:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=85f14f92fdb5c375f0ae4100f50a529a62b480ec'/>
<id>urn:sha1:85f14f92fdb5c375f0ae4100f50a529a62b480ec</id>
<content type='text'>
* Add closed msg field

i18n

fix

* Display based on registration type

* Save as FreshRSS_Context::systemConf()-&gt;closed_registration_message instead

* Improve messages

* Revert unrelated changes

* make fix-all

* Minor whitespace

* Simplify logic

* Fix invalid use of empty() and sympler syntax

---------

Co-authored-by: Alexandre Alapetite &lt;alexandre@alapetite.fr&gt;</content>
</entry>
<entry>
<title>Scaling of user statistics (#8277)</title>
<updated>2025-12-04T18:11:31+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-12-04T18:11:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=78e40c6fe3afe7f815ef9d32646610e2d5436ba3'/>
<id>urn:sha1:78e40c6fe3afe7f815ef9d32646610e2d5436ba3</id>
<content type='text'>
Fix https://github.com/FreshRSS/FreshRSS/issues/8268
To better support user management on FreshRSS instance with many users.

SQL speed improved. On a reduced test with 5 users, including some large accounts (PostgreSQL on a very tiny and slow server), improving from ~2.3s to ~1.8s, which gives ~20% speed improvement.

Then tested with 1000 users, with only the default feed (on my old desktop computer):

```sh
for i in {1..1000}; do ./cli/create-user.php --user=freshrss$i --password=freshrss; done
app/actualize_script.php
cli/access-permissions.sh
```

SQLite:

```console
$ time cli/user-info.php | wc -l
1001

real    0m1.366s
user    0m0.908s
sys     0m0.475s
```

PostgreSQL:

```console
$ time cli/user-info.php | wc -l
1001

real    0m28.498s
user    0m12.137s
sys     0m2.217s
```

MariaDB:

```console
# time ./cli/user-info.php | wc -l
1001

real    0m49.485s
user    0m1.276s
sys     0m2.258s
```

Yes, SQLite is much faster - not a surprise for such use-cases, where the TCP connection is not re-used.

I have added some CLI options to disable some statistics:

```sh
cli/user-info.php --no-db-size --no-db-counts
```

For the Web UI, I have disabled detailed user statistics if it takes too long, and retrieve missing user statistics asynchronously via JavaScript. Lazy loading of the user details based on IntersectionObserver, with maximum 10 requests in parallel.
Web UI tested on 1000 users as well. Checked with SeaMonkey.
</content>
</entry>
<entry>
<title>Fix CLI user creation warning when language is not given (#8283)</title>
<updated>2025-12-03T22:41:06+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-12-03T22:41:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=3c4a46e6ba23f310065334e08ecdf73360c330cd'/>
<id>urn:sha1:3c4a46e6ba23f310065334e08ecdf73360c330cd</id>
<content type='text'>
Discovered during https://github.com/FreshRSS/FreshRSS/pull/8277</content>
</entry>
<entry>
<title>Housekeeping lib_rss.php (#8193)</title>
<updated>2025-11-11T07:17:12+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-11-11T07:17:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=a18c35046daee15e7ac5f85db290d54541a03e3c'/>
<id>urn:sha1:a18c35046daee15e7ac5f85db290d54541a03e3c</id>
<content type='text'>
* Housekeeping lib_rss.php
`lib_rss.php` had become much too large, especially after https://github.com/FreshRSS/FreshRSS/pull/7924
Moved most functions to other places.
Mostly no change of code otherwise (see comments).

* Extension: composer run-script phpstan-third-party</content>
</entry>
<entry>
<title>Strengthen some crypto (#8061)</title>
<updated>2025-10-04T12:32:18+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-10-04T12:32:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=57e1a375cbd2db9741ff19167813344f8eff5772'/>
<id>urn:sha1:57e1a375cbd2db9741ff19167813344f8eff5772</id>
<content type='text'>
For login, tokens, nonces</content>
</entry>
<entry>
<title>configurable notification timeout (#7942)</title>
<updated>2025-10-01T08:48:07+00:00</updated>
<author>
<name>maTh</name>
<email>1645099+math-GH@users.noreply.github.com</email>
</author>
<published>2025-10-01T08:48:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=2bcc090622c0e62dbff94e52bb6892a51b40ba2a'/>
<id>urn:sha1:2bcc090622c0e62dbff94e52bb6892a51b40ba2a</id>
<content type='text'>
Ref #7931
Ref #5466
Ref #6409

added configuration in "Display"
&lt;img width="636" height="167" alt="grafik" src="https://github.com/user-attachments/assets/7bbc9f26-d91b-4dd2-b715-1d3f9b7a9ad3" /&gt;

* i18n: fr

* Update app/i18n/pl/conf.php

Co-authored-by: Inverle &lt;inverle@proton.me&gt;

* make fix-all

* max()

* Minor whitespace
(I am not a fan of excessive vertical indenting)

---------

Co-authored-by: Alexandre Alapetite &lt;alexandre@alapetite.fr&gt;
Co-authored-by: Inverle &lt;inverle@proton.me&gt;
</content>
</entry>
<entry>
<title>Fix autocomplete issues in change password form (#7812)</title>
<updated>2025-09-30T08:12:15+00:00</updated>
<author>
<name>Inverle</name>
<email>inverle@proton.me</email>
</author>
<published>2025-09-30T08:12:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=bf6e634e042b726edd97335ac36b2305f8101b3f'/>
<id>urn:sha1:bf6e634e042b726edd97335ac36b2305f8101b3f</id>
<content type='text'>
## Screenshots

&lt;details&gt;
&lt;summary&gt;Before&lt;/summary&gt;

&lt;img width="773" height="652" alt="image" src="https://github.com/user-attachments/assets/89a0e58c-8c4a-41ff-b5d6-3e916079d563" /&gt;

&lt;/details&gt;

&lt;details&gt;
&lt;summary&gt;After&lt;/summary&gt;

&lt;img width="1006" height="646" alt="image" src="https://github.com/user-attachments/assets/f4575103-7365-4870-a170-2742bf10eb27" /&gt;

&lt;/details&gt;

This is an example on Firefox, where the `Master authentication token` field was incorrectly being autofilled.
Red borders are indicating that the fields are required.

## List of changes

* `required="required"` is now being added to the password fields if the section is open
* The `challenge` field is being added if section is open instead of when at least one of the password fields isn't empty due to autocomplete
* Added `autocomplete="new-password"` on fields that shouldn't be autocompleted
   * Unfortunately Chrome requires a workaround with CSS
   * Not tested on Safari yet
* User will be redirected to profile page after successfully changing their password instead of index page

## How to test

Autocomplete related changes should be tested on a HTTPS page with saved credentials for FreshRSS
</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>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>
<entry>
<title>Add a default language constant (#7933)</title>
<updated>2025-09-09T20:01:04+00:00</updated>
<author>
<name>Alexis Degrugillier</name>
<email>aledeg@users.noreply.github.com</email>
</author>
<published>2025-09-09T20:01:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=6ad625812a77dc1a63b3c88792b588de11ae8f3c'/>
<id>urn:sha1:6ad625812a77dc1a63b3c88792b588de11ae8f3c</id>
<content type='text'>
This replace the use of `en` through out the code.</content>
</entry>
</feed>
