Commit Graph

218 Commits

Author SHA1 Message Date
berumuron
662c9fcc2f fix: Fix check of existing usernames in cli scripts (#5667)
`preg_grep` returns an empty array if the username matches no elements
from the usernames array.

Regression introduced in 7f9594b8c7

Reference: https://github.com/FreshRSS/FreshRSS/pull/5501
2023-09-22 11:41:49 +02:00
Luc SANCHEZ
7f9594b8c7 fix many "Only booleans are allowed in an if condition" (#5501)
* fix many "Only booleans are allowed in an if condition"

* Update cli/create-user.php

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update cli/i18n/I18nUsageValidator.php

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Fix several regressions and other minor things

* Fix another regression

* Update lib/http-conditional.php

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

---------

Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-07-07 21:53:17 +02:00
Alexandre Alapetite
6e2f2f1c1e A few additional PHPStan rules (#5388)
A subset of
https://github.com/phpstan/phpstan-strict-rules
2023-05-11 13:02:04 +02:00
Alexandre Alapetite
97226dc8a6 Update Docker image Alpine 3.18 (#5383)
https://alpinelinux.org/posts/Alpine-3.18.0-released.html

Minor updates with Apache 2.4.57 and PHP 8.1.19
2023-05-10 23:54:49 +02:00
Alexandre Alapetite
bd9fa803f1 PHPStan Level 7 complete DAOs (#5354)
* PHPStan Level 7 complete DAOs

* Finalise PHPStan Level 7 for CategoryDAO

* PHPStan Level 7 for Context and Search

* Apply suggestions from code review

Co-authored-by: Luc SANCHEZ <4697568+ColonelMoutarde@users.noreply.github.com>
2023-05-02 14:38:32 +02:00
Luc SANCHEZ
49000ca587 phpstan level 9 for check.translation.php (#5353)
* phpstan level 7 for check.translation.php

* Fixes

---------

Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-04-29 20:08:36 +02:00
Luc SANCHEZ
2199df8ad7 phpstan level 7 for manipulate.translation.php (#5352)
* phpstan level 7 for manipulate.translation.php

* Update manipulate.translation.php

---------

Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
2023-04-28 14:21:54 +02:00
Alexandre Alapetite
c72914bba2 PHPStan Level 7 for more DAO PDO (#5328)
* PHPStan Level 7 for more DAO PDO
With new function to address common type and check problems

* A bit more

* PHPStan Level 7 for FreshRSS_Entry
2023-04-28 14:01:11 +02:00
Alexandre Alapetite
115724622f PHPStan Level 7 for ten more files (#5327)
* PHPStan Level 7 for nine more files

* Minor syntax

* One more
2023-04-23 11:58:15 +02:00
Luc SANCHEZ
8cc8127c3c phpstan level 7 for user-info.php (#5309)
* phpstan level 7 for user-info.php

* phpstan level 7 for user-info.php

* phpstan level 7 for user-info.php

---------

Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
2023-04-17 16:27:35 +02:00
Alexandre Alapetite
f3760f138d Complete PHPStan Level 6 (#5305)
* Complete PHPStan Level 6
Fix https://github.com/FreshRSS/FreshRSS/issues/4112
And initiate PHPStan Level 7

* PHPStan Level 6 for tests
* Use phpstan/phpstan-phpunit
* Update to PHPStan version 1.10

* Fix mixed bug

* Fix mixed return bug

* Fix paginator bug

* Fix FreshRSS_UserConfiguration

* A couple more Minz_Configuration bug fixes

* A few trivial PHPStan Level 7 fixes

* A few more simple PHPStan Level 7

* More files passing PHPStan Level 7
Add interface to replace removed class from https://github.com/FreshRSS/FreshRSS/pull/5251

* A few more PHPStan Level 7 preparations

* A few last details
2023-04-17 08:30:21 +02:00
Luc SANCHEZ
a19b56064d PHPstan level 6 for Category.php (#5298)
* PHPstan level 6 for Category.php

* Fix a few things

* Minor fixes

* A few more fixes

---------

Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-04-15 01:19:22 +02:00
Luc SANCHEZ
b8662f8899 PHPstan level 6 for I18nFile.php (#5291)
* PHPstan level 6 for I18nFile.php

* Minor syntax

* PHPstan level 6 for I18nFiles

* PHPstan level 6 for I18nFiles

* PHPstan level 6 for I18n Files

* PHPstan level 6 for I18n Files

* Fix several type errors

---------

Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-04-14 23:08:38 +02:00
Alexandre Alapetite
3f1695db03 PHPStan 6 for CLI (#5258)
* PHPStan 6 for CLI
Except `./cli/i18n/`

* Bool

* One type forgotten
2023-04-05 16:19:14 +02:00
Alexandre Alapetite
36aa0122e1 Fix extensions in actualize_script (#5243)
* Fix extension freshrss_user_maintenance in actualize_script
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/3440

The hook was called before registering all the extensions for the current user

* PHPStan Level 6 for extensions
And remove 5-year old legacy format of enabled extensions < FreshRSS 1.11.1

* Fix multiple bugs in extensions

* Minor typing

* Don't change signature of methods supposed to be overridden

* PHPStan Level 9 and compatibility Intelliphense

* Set as final the methods not supposed to be overriden
2023-04-04 10:23:26 +02:00
Alexandre Alapetite
288ed04ccc PHPStan level 6 for all PDO and Exception classes (#5239)
* PHPStan level 6 for all PDO and Exception classes
Contributes to https://github.com/FreshRSS/FreshRSS/issues/4112

* Fix type

* Now also our remaining own librairies

* Motivation for a few more files

* A few more DAO classes

* Last interface
2023-03-31 08:23:39 +02:00
Luc SANCHEZ
5f898dcc5e Modernize Constants and use new constant for string 'currentUser' (#5089)
* Modernize Constants and use new constant 'currentUser'

* Add FreshRSS_Context::currentUser() function and use

* Add FreshRSS_Context::currentUser() function and use

* Add FreshRSS_Context::currentUser() function and use

* Add FreshRSS_Context::currentUser() function and use

* Add FreshRSS_Context::currentUser() function and use

* Update app/Controllers/userController.php

* Update app/Controllers/userController.php

* Update app/Controllers/userController.php

* Update app/Models/Auth.php

* Update p/api/greader.php

* Update p/api/greader.php

* Update p/api/greader.php

* Update app/Models/Context.php

* Update app/Models/LogDAO.php

* Update lib/Minz/Log.php

* Update p/api/greader.php

* Update app/layout/header.phtml

* Update app/views/helpers/export/articles.phtml

* Update cli/do-install.php

* Remarque's from Alkarex

* Remarque's from Alkarex

* Refactor using new Minz_User class

* Consistent naming of public constants

---------

Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-03-26 14:17:22 +02:00
Alexandre Alapetite
e899e4edd9 More robust application of access permissions (#5062)
* More robust application of access permissions
We were in particular missing directory traversal `+X` in our current recommendations.
Extracted to own shell script so it can easily be invoked.
Update access permissions in Docker to account to be more robust.
#fix https://github.com/FreshRSS/FreshRSS/discussions/5037

* Minor simplification

* Restrict mkdir permissions
Default mkdir permissions are 0777, which is not good for security, so downgrade to 0770.
2023-02-06 15:42:53 +01:00
Alexandre Alapetite
075cf4c800 API avoid logging passwords (#5001)
* API avoid logging passwords
* Strip passwords and tokens from API logs
* Only log failed requests information when in debug mode

* Remove debug SHA

* Clean also Apache logs

* Better comments

* Redact also token parameters

* shfmt

* Simplify whitespace

* redacted
2023-01-11 23:27:14 +01:00
Alexis Degrugillier
1f4e347cae Add tests on i18n classes (#4756) 2022-10-20 23:42:47 +02:00
Thelonius Kort
d4181e098d Fix broken link to the updating instructions (#4753) 2022-10-20 00:18:59 +02:00
Alexis Degrugillier
6fd063fa58 Fix i18n tool when adding parent translation (#4742)
See #4737
2022-10-18 23:25:04 +02:00
Alexandre Alapetite
240afa7d4d CLI add missing extension hook freshrss_user_maintenance (#4495) 2022-08-08 11:39:21 +02:00
Alexandre Alapetite
6af7854de3 CLI allow empty DB prefix (#4488)
Allow an empty `--db-prefix` parameter (i.e. optional) in CLI to have no DB prefix
2022-08-05 15:10:41 +02:00
Alexandre Alapetite
509c8cae63 Dynamic OPML (#4407)
* Dynamic OPML draft
#fix https://github.com/FreshRSS/FreshRSS/issues/4191

* Export dynamic OPML
http://opml.org/spec2.opml#1629043127000

* Restart with simpler approach

* Minor revert

* Export dynamic OPML also for single feeds

* Special category type for importing dynamic OPML

* Parameter for excludeMutedFeeds

* Details

* More draft

* i18n

* Fix update

* Draft manual import working

* Working manual refresh

* Draft automatic update

* Working Web refresh + fixes

* Import/export dynamic OPML settings

* Annoying numerous lines in SQL logs

* Fix minor JavaScript error

* Fix auto adding new columns

* Add require

* Add missing 🗲

* Missing space

* Disable adding new feeds to dynamic categories

* Link from import

* i18n typo

* Improve theme icon function

* Fix pink-dark
2022-07-04 09:53:26 +02:00
Alexandre Alapetite
f89819bd64 Custom logo HTML (#4369)
* Custom logo HTML
Add option for custom HTML logo/title in the main Web UI view.
Can potentially be different per user.
#fix https://github.com/FreshRSS/FreshRSS/pull/3830/files#r850472247

* logo_html in main config
With new `./data/config.custom.php` to provide custom values before install

* Docker documentation

* whitespace

* Auto relax CSP to allow images for HTML logo

* Documentation
2022-05-23 14:03:19 +02:00
Alexandre Alapetite
fe880d1a98 i18n fr (#4199)
And make check.translation executable:

```sh
cli/check.translation.php -r
```
2022-02-05 19:04:07 +01:00
Alexandre Alapetite
e28a2e320e i18n CLI improve parsing (#4197)
https://github.com/FreshRSS/FreshRSS/pull/3932#discussion_r800043744
2022-02-05 13:23:44 +01:00
Alexandre Alapetite
66912420a1 i18n CLI compat PHP 7.0 (#4184)
Minor syntax change to pass the linting in PHP 7.0
2022-01-31 14:22:50 +01:00
Alexandre Alapetite
1acd3ab09b Use typographic quotes (#4133)
* Use typographic quotes

* A few fixes

* Fix

* Fix not saved

* Implement feedback

* Detail

* Revert spoken English fixes
Left for a future dedicated discussion

* More reverts

* Final reverts

* Final minor
2022-01-08 21:58:55 +01:00
Alexis Degrugillier
127b7f0a3a Change i18n process (#4131)
Before, the ignore info were stored in a different file which was a bit cumbersome
for new comers. Now, this info is stored directly in the translation file as a
comment.

Before, there was no way of telling translators that a previously translated string
was in need of a new translation. Now, the dirty information is there to convey that
info.
2022-01-08 14:00:26 +01:00
Alexandre Alapetite
1335a0e3cf PHPStan level 5 (#4110)
* Fix most PHPDocs errors
Contributes to https://github.com/FreshRSS/FreshRSS/issues/4103
https://phpstan.org/writing-php-code/phpdoc-types

* Avoid func_get_args
Use variadic syntax instead https://php.net/manual/functions.arguments#functions.variable-arg-list
And avoid dynamic functions names when possible to more easily identify calls and unused functions.
Contributes to https://github.com/FreshRSS/FreshRSS/issues/4103

* PHPStan level 3

* PHPStand level 4

* Update default to PHPStan level 4

* Towards level 5

* Fix level 4 regression

* Towards level 5

* Pass PHPStan level 5

* Towards level 6

* Remove erronenous regression from changelog
https://github.com/FreshRSS/FreshRSS/pull/4116
2022-01-04 13:59:09 +01:00
Alexandre Alapetite
77e9877316 Add PHPStan (#4021)
* Add PHPStan
#fix https://github.com/FreshRSS/FreshRSS/issues/4016
https://phpstan.org/

```sh
composer run-script phpstan
```

* More fixes

* Fix global variables

* Add .phtml

* Fix merge
https://github.com/FreshRSS/FreshRSS/pull/4090

* Fix more warnings

* Fix view errors and enable in CI

* ReturnTypeWillChange

* Dynamic view type

* Fix Minz static/self bug
2021-12-31 17:00:51 +01:00
maTh
ff877e603f Cli: readme: added infos about manipulate.translation.php (#3937)
* added: ./cli/manipulate.translation.php + divided in sub sections

* headline structure

* blank lines added
2021-10-25 20:29:49 +02:00
maTh
33cac3e695 Update manipulate.translation.php (#3936) 2021-10-25 20:27:42 +02:00
Frans de Jonge
f1e4b980fb [i18n] Add Dutch translation for new strings (#3928)
References #3898.
2021-10-24 11:37:54 +02:00
Alexandre Alapetite
acbba9adb2 Improved markdownlint (#3918)
* Improved markdownlint
* Relaxed rules slighlty
* `npm run markdownlint` for automatic tests
* `npm run markdownlint_fix` for automatic syntax fixing
* Applied the fixes on all our Markdown files
2021-10-23 13:43:24 +02:00
maTh
cba304c352 i18n German (#3913)
* i18n

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-10-23 13:24:27 +02:00
Nainor
8c6b3f8655 Update PT-BR Translation (#3908)
* Update PT-BR Translation

* i18n fix syntax

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-10-23 12:36:50 +02:00
Natalie Stroud
c484746a88 Updated Spanish translations (#3916)
* Updated Spanish translations

Co-authored-by: Natalie Stroud <stroudn1@nku.edu>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-10-23 12:32:39 +02:00
OctopusET
1f8fd53c3f Update Korean Translation with language code fix (#3914)
* Update Korean Translation

* Fix Korean language code following IETF BCP 47

* Fix Korean language code in i18n/*/gen.php

* Fix Korean language code in cli/i18n/*

* Fix Korean language code in docs

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-10-23 12:14:16 +02:00
Alexandre Alapetite
401af448cc i18n minor en-US 2021-10-21 11:24:51 +02:00
Alexandre Alapetite
af57c456df i18n automatic syntax fixes
Forgotten from https://github.com/FreshRSS/FreshRSS/pull/3899
2021-10-21 10:40:31 +02:00
id-konstantin-stepanov
c053d77479 Update Russian Translation (#3907)
* Update Russian Translation

* Update Russian Translation

* Update Russian Translation

* Update Russian Translation

* Update Russian Translation

* Minor syntax

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-10-21 10:28:10 +02:00
stysebae
85b898c623 Add shortcut to jump to next unread article (issue #3393) (#3891)
* Add shortcut to jump to next unread article

* phpcbf

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-10-19 10:46:39 +02:00
maTh
c23702eaa5 Fix #3835: theme switcher broken when theme is not available (#3874)
* FIx the function: add an error slide

* i18n for the error message

* fix the message

* i18n: nl

* phpcbf

* Typographic quotation marks
+fr +en-US

* Unicode instead of entities

* Whitespace

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-10-16 12:44:02 +02:00
Alexandre Alapetite
a7aca6c0ab Improved feed action filters (#3303)
* Re-order some feed options
* Option to auto mark as read existing titles
* Option to keep at max n unread articles per feed
2021-09-19 10:56:38 +02:00
maTh
8b80c4cc8f Settings: User queries - layout upgrade (#3827)
* draft

* deleted the out commeted code

* improved alert messages

* Update queries.phtml

* Theme base-theme/template.css

* fixed theme: Origin

* Fixed: Theme Adark

* Fixed: Theme Ansum

* Fix: Theme BlueLagoon

* Fix: Theme Dark

* Fix: Theme Flat

* Fix: Theme Mapco

* Fix: Theme Mapco (SCSS)

* Fix: Theme Origine-compact

* Fix: Theme Pafat

* Fix: Theme Screwdriver

* Fix: Theme Swage

* Lint CSS, RTL, and i18n

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-09-12 12:06:29 +02:00
Alexandre Alapetite
fe295f50d0 Lint i18n files (#3841)
Translations had quite a lot of cleaning in late:
* Removed some unused keys
* Added some ignores
* Applied a `cli/manipulate.translation.php -a format`
2021-09-12 11:37:15 +02:00
312k
0489b2c722 japanese translation (#3828)
* Make japanese directory

* Translate admin.php

* finish translate conf.php

* finish transtlate feedback.php

* finish transtlate gen.php

* finish transtlate index.php

* finish transtlate index.php

* finish transtlate sub.php

* finish transtlate user.php

* Fix mistaken translation

* Remove // TODO - Translation

* Translation linting

* Lint Pinboard

* Wrong todo

* Fix missing translation

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-09-08 08:37:02 +02:00