<feed xmlns='http://www.w3.org/2005/Atom'>
<title>FreshRSS (Customized)/app/Controllers/userController.php, branch 1.15.3</title>
<subtitle>Customized version of FreshRSS, a self-hosted RSS feed aggregator</subtitle>
<id>https://git.rdnlsmith.com/fresh-rss-custom/atom?h=1.15.3</id>
<link rel='self' href='https://git.rdnlsmith.com/fresh-rss-custom/atom?h=1.15.3'/>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/'/>
<updated>2019-11-18T09:04:32+00:00</updated>
<entry>
<title>Add log in fever api saving process (#2664)</title>
<updated>2019-11-18T09:04:32+00:00</updated>
<author>
<name>Alexis Degrugillier</name>
<email>aledeg@users.noreply.github.com</email>
</author>
<published>2019-11-18T09:04:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=d3735d04fcdb557a2ecc798f9914b9f769daf781'/>
<id>urn:sha1:d3735d04fcdb557a2ecc798f9914b9f769daf781</id>
<content type='text'>
Before, there was no user log when the fever api credential saving process
was failing. There was one though for the admin user but it did not appear
in the interface.
Now, there is a user log showing what the problem is. The admin log is still
there but catch only unknown errors.

See #2663</content>
</entry>
<entry>
<title>Default or custom OPML (#2627)</title>
<updated>2019-11-04T16:45:15+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2019-11-04T16:45:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=7819a43197d34ef7a6c5626e9e48d7db075c37c9'/>
<id>urn:sha1:7819a43197d34ef7a6c5626e9e48d7db075c37c9</id>
<content type='text'>
* Default or custom OPML

Fix https://github.com/FreshRSS/FreshRSS/issues/2075
Replaces https://github.com/FreshRSS/FreshRSS/pull/2515
https://github.com/FreshRSS/FreshRSS/issues/2514

Uses the local ./data/opml.xml if it exists, otherwise
./opml.default.xml

* Better message

* Move to controller
</content>
</entry>
<entry>
<title>PDO refactoring for code simplification (#2522)</title>
<updated>2019-09-29T14:22:50+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2019-09-29T14:22:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=e3e5954394f4523850c78e80e496f1b916622677'/>
<id>urn:sha1:e3e5954394f4523850c78e80e496f1b916622677</id>
<content type='text'>
* PDO refactor

* Automatic prefix when using the syntax `_tableName`
* Uniformity: MySQL is now PDO::ATTR_EMULATE_PREPARES = false just like SQLite and PostgreSQL, with consequences such as only one statement per query
* Use PDO methods exec(), query(), prepare() + execute() in a more efficient way
* Remove auto-update SQL code for versions older than FreshRSS 1.5 (3 years old)
* The name of the default category is set in PHP instead of in the DB (simplies SQL and allows changing the name according to the FreshRSS language)
* Rename `-&gt;bd` to `-&gt;pdo` (less of a frenshism, and more informative)
* Fix some requests, which were not compatible with MySQL prepared statements

* Whitespace

* Fix syntax for PostgreSQL sequences

+ MySQL install

* Minor formatting

* Fix lastInsertId for PostgreSQL

* Use PHP 5.6+ const

Take advantage of https://github.com/FreshRSS/FreshRSS/pull/2527
https://www.php.net/manual/en/migration56.new-features.php

* A bit of forgotten PHP 5.6 simplification for cURL

* Forgotten $s

* Mini fix custom user config

https://github.com/FreshRSS/FreshRSS/pull/2490/files#r326290346

* More work on install.php but not finished

* install.php working

* More cleaning of PDO in install

* Even more simplification

Take advantage of PDO-&gt;exec() to run multiple statements

* Disallow changing the name of the default category

https://github.com/FreshRSS/FreshRSS/pull/2522#discussion_r326967724
</content>
</entry>
<entry>
<title>Add support for terms of service</title>
<updated>2019-09-17T07:21:23+00:00</updated>
<author>
<name>Marien Fressinaud</name>
<email>dev@marienfressinaud.fr</email>
</author>
<published>2019-09-13T15:33:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=a2ed6626c2f4e85878f775abcac897a1fd3a1f42'/>
<id>urn:sha1:a2ed6626c2f4e85878f775abcac897a1fd3a1f42</id>
<content type='text'>
This feature is optional. It is based on the presence of a
`data/tos.html` file that an administrator can create. If this file
exists, FreshRSS will automatically add a "ToS" checkbox on the
registration page that users must check to be able to create their
account.
</content>
</entry>
<entry>
<title>Configure user defaults (#2490)</title>
<updated>2019-09-16T19:18:42+00:00</updated>
<author>
<name>Joris Kinable</name>
<email>j.kinable@gmail.com</email>
</author>
<published>2019-09-16T19:18:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=80590daeb3627e5712be15fdc4bd98f0e2c40ea5'/>
<id>urn:sha1:80590daeb3627e5712be15fdc4bd98f0e2c40ea5</id>
<content type='text'>
* new users inherit defaults from config-user.php

* installer creates ./data/config-user.php

* fixed typo

* .gitignore fix

* fixed style issues

* Fixed comments

* Update according to feedback

- rename file into `data/config-user.custom.php`
- make it optional (and so, don't copy it during installation)

* fixup! Update according to feedback
</content>
</entry>
<entry>
<title>CLI to export/import any database to/from SQLite (#2496)</title>
<updated>2019-09-15T19:36:53+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2019-09-15T19:36:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=c76a318193cda63064625b2d92c719b7150d7d64'/>
<id>urn:sha1:c76a318193cda63064625b2d92c719b7150d7d64</id>
<content type='text'>
* CLI to export/import any database to/from SQLite

Require PHP 5.5+ https://github.com/FreshRSS/FreshRSS/pull/2495

* Travis

* Execution rights

* Fix wrong static fields

* Fix MySQL bad default buffering

https://stackoverflow.com/questions/6895098/pdo-mysql-memory-consumption-with-large-result-set/6935271#6935271
https://php.net/manual/ref.pdo-mysql

* Fix count on progression

* Avoid static DB information

To ease working with two DBs at the same time

* Less static, simplify

Needs some testing

* Small corrections

* Special case for SQLite to SQLite

* Modify special case for SQLite

* Remove special case for SQLite

More uniform logic for the 3 databases.
Fix wrong DROP TABLE for SQLite.

* Drop indexes

* Revert "Drop indexes"

This reverts commit f28d2bae0935745c1c74ea38f2ee083f3fd4bf9d.

* Fix deletion

* Fix classic export

* Update cli/README.md

Co-Authored-By: Marien Fressinaud &lt;dev@marienfressinaud.fr&gt;

* Addressing part of review

* Remove goto :cry:

* Travis

* Comment for SQLite case

* Fix missing fields when inserting
</content>
</entry>
<entry>
<title>fix: Fix "validate email"-related issues (#2512)</title>
<updated>2019-08-29T16:08:43+00:00</updated>
<author>
<name>Marien Fressinaud</name>
<email>dev@marienfressinaud.fr</email>
</author>
<published>2019-08-29T16:08:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=84f9311fd53f5fa58ae55986ece9bfa7dac455c1'/>
<id>urn:sha1:84f9311fd53f5fa58ae55986ece9bfa7dac455c1</id>
<content type='text'>
* fix: Make sure $disable_aside is initialized

There was a warning for an uninitialized variable, hidden in production
but visible in development mode.

* fix: Allow to delete account when email isn't validated
</content>
</entry>
<entry>
<title>Provide email address verification feature (#2481)</title>
<updated>2019-08-29T10:02:05+00:00</updated>
<author>
<name>Marien Fressinaud</name>
<email>dev@marienfressinaud.fr</email>
</author>
<published>2019-08-29T10:02:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=75632e70f0d49048f4ce72a0fa8bbcbcd7b2d312'/>
<id>urn:sha1:75632e70f0d49048f4ce72a0fa8bbcbcd7b2d312</id>
<content type='text'>
* Add an email field to the profile page

I reuse the `mail_login` from the configuration. I'm not sure if it's
useful today (I would say it was used when Persona login was available).

A good improvement would be to rename `mail_login` into `email` so it
would be more intuitive to use.

* Add boolean to the conf to force email validation

This commit only adds a configuration item.

* Add email during registration if email must be validated

* Set email token to validate when email changes

* Block access to FreshRSS if email is not validated

* Send email when address is changed

* Allow to resend the validation email

* Allow the user to change its email while blocked

* Document the email validation feature

* fixup! Allow the user to change its email while blocked

* tec: Autoload PHPMailer lib

* Validate email address format

* Add feedback on validation email resend action

* Allow to logout when user is blocked

* fix: Change default email "from"

* Reorganize i18n keys

* Complete all the locales with default english

* Hide sidebar (profile page) if email is not validated

* Check email requirements on registration

* Allow admin to specify email when creating users

* Don't check email format if value is empty

* Remove trailing comma in userController

Co-Authored-By: Alexandre Alapetite &lt;alexandre@alapetite.fr&gt;

* Set PHPMailer validator to html5 before sending email

* fixup! Remove trailing comma in userController
</content>
</entry>
<entry>
<title>Require PHP 5.5+ (#2495)</title>
<updated>2019-08-20T12:55:43+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2019-08-20T12:55:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=fd33d92d413acb5ee48e04d8a78f251e35ef06c5'/>
<id>urn:sha1:fd33d92d413acb5ee48e04d8a78f251e35ef06c5</id>
<content type='text'>
* Require PHP 5.5+

https://github.com/FreshRSS/FreshRSS/issues/2469#issuecomment-522255093
I think it would be reasonable to require PHP 5.5+ for the core of
FreshRSS after all.

As Frenzie said, WordPress currently requires PHP 5.6.20+, and it is the
most popular PHP application.

We would loose about 20% of the PHP servers according to
https://w3techs.com/technologies/details/pl-php/5/all but I expect this
number to drop fast after the release of CentOS 8 (CentOS accounts for
17% of Linux servers
https://w3techs.com/technologies/details/os-linux/all/all ).

Distributions:
* no impact on Ubuntu, Fedora, Alpine, OpenWRT, FreeBSD, OpenSuze,
Mageia, as all active versions have PHP &gt; 7
* no impact on OpenSuze, Synology, as all active versions have PHP &gt; 5.5
* we drop Debian 8 Jessie (-2020) - we keep supporting Debian 9 Stretch
(2017-06) - current is Debian 10 Buster
* we drop Red Hat 7 (-2024) - we keep supporting RHEL 8 (2019-05)
* we drop CentOS 7 (-2024) - we will support CentOS 8 (to be released
soonish)

When dropping older versions, I can better like when it is for a good
reason, and there is actually one with PHP 5.5, namely generators
(yield) https://php.net/language.generators.overview which I consider
using.

* Version note for JSON.php

* hex2bin

* Update .travis.yml

Co-Authored-By: Frans de Jonge &lt;fransdejonge@gmail.com&gt;
</content>
</entry>
<entry>
<title>Clean access checks on userController (#2471)</title>
<updated>2019-07-31T11:52:20+00:00</updated>
<author>
<name>Marien Fressinaud</name>
<email>dev@marienfressinaud.fr</email>
</author>
<published>2019-07-31T11:52:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=89427e45e5413d400b1398710785df6d0c7153ee'/>
<id>urn:sha1:89427e45e5413d400b1398710785df6d0c7153ee</id>
<content type='text'>
The access was checked several times in some actions and had incoherent
behaviours. Also, the `firstAction` condition was a bit tricky to
understand.

This PR duplicates conditions across all the controller actions and
remove the `firstAction` which becomes useless.</content>
</entry>
</feed>
