Commit Graph

2218 Commits

Author SHA1 Message Date
Alexis Degrugillier
e1ee58816b Add a file for each PDO class (#3297)
Before, we had 5 classes in the ModelPdo file. It was bad for 2 reasons.
The first reason is that it is considered bad practice to have multiple
class in one file. This is especially true when using autoloading. On top
of that it is less readable considering the size of the file. The second
reason is that so far we were lucky. Everytime we needed to access the
database, it was through the ModelPdo class which loads all the other
classes. If we want to access directly the connection, it wont be loaded.
On top of that, the system is configured to work on a single database,
but as we have every connection definition in a single file, all classes
were loaded at the same time. Thus using memory and processing time for
nothing.
Now, we have a file for each class. To work with autoloading, classes
were slightly renamed to match autoloading rules.
2020-12-28 16:44:08 +01:00
Alexandre Alapetite
ac0d90c100 Auto-renew cookie (#3287)
#fix https://github.com/FreshRSS/FreshRSS/issues/3169#issuecomment-685983797
Supplement https://github.com/FreshRSS/FreshRSS/pull/3170

When we get the long-term login cookie (i.e. when starting a new session), renew it at the same time for the same duration
2020-12-28 13:09:57 +01:00
Alexis Degrugillier
e93675e036 Fix tag management translation (#3292)
Before, feedback messages were not translated.
Now, they are.
2020-12-28 13:08:38 +01:00
Martin
6ecfc01c1f bump default logout from 30 days to 3 months (#3170)
* bump default logout from 30 to 365 days

* * Change cookie duration to constant
* Change cookie duration to three months

* use class

* use 90 days (otherwise login form says 91.3 days)

* change class

* also this works now

Co-authored-by: Martin Rys <martin@rys.pw>
Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2020-12-26 23:40:24 +01:00
Alexandre Alapetite
2b0f93b013 Layout add subscription (#3289)
* Category first

I kept hitting the 'add' button for a category when adding a new feed

* Blanks

Mix of spaces
2020-12-26 20:30:49 +01:00
Alexandre Alapetite
4f74215199 Better OPML import of feeds in multiple categories (#3286)
#fix https://github.com/FreshRSS/FreshRSS/issues/3284
Helps https://github.com/FreshRSS/FreshRSS/issues/1989

In OPMLs files in which feeds are listed several times, favour the
version in a category instead of in no category.
2020-12-26 17:23:23 +01:00
Alexis Degrugillier
4abb30228b Fix user queries with labels (#3285)
Before user queries with labels were not translated. Actually, it was not
even processed.
Now those user queries are translated properly.

See #3215
2020-12-26 12:50:09 +01:00
Alexandre Alapetite
abfbeb6b71 Cleaner use of session in install script (#3276)
Fix warning about session already started during install.
Refactor more code to use the same approach than in main FreshRSS.
Did not address all read accesses (not important) but did cover all
write accesses (important)
2020-12-22 17:37:19 +01:00
Alexandre Alapetite
48e0464e4b Prevent login before extra.js is loaded (#3275)
Disable submit button until extra.js with its crypto functions is
loaded.
2020-12-22 17:36:50 +01:00
Alexandre Alapetite
08a5cf5946 Ensure maximum date int (#3259)
#fix https://github.com/FreshRSS/FreshRSS/issues/3258
2020-11-23 23:04:06 +01:00
Marc Ole Bulling
a90274a1f4 Chang wording "Actualize" to "Update" (#3248)
* Fixed translation error (changed "Actualize" to "Update")

* Fix Travis

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2020-11-12 09:32:25 +01:00
Alexandre Alapetite
8dad63de02 Fix initI18n (#3249)
* Fix initI18n

#fix
https://github.com/FreshRSS/FreshRSS/issues/3246#issuecomment-725463337
#fix https://github.com/FreshRSS/FreshRSS/issues/3136

It was due to calling `initI18n()` before `FreshRSS_Context` is
intialised in some situations

Introduced by https://github.com/FreshRSS/FreshRSS/pull/3022
Will be better fixed when https://github.com/FreshRSS/FreshRSS/pull/3070
lands

* Fallback condition
2020-11-11 23:03:15 +01:00
Mejans
23015f26cc Update remember open categories (#3245) 2020-11-09 09:20:27 +01:00
Alexandre Alapetite
bb5b723def i18n ignore name of languages (#3240) 2020-11-04 21:50:46 +01:00
GuillaumePugnet
b00a06dc8d db username regex relaxed to allow @ (#3241)
Co-authored-by: Guillaume Pugnet <guillaume.pugnet@avanade.com>
2020-11-02 18:03:48 +01:00
Prashant Tholia
6f23999c7b Remember open categories (#3185)
* feature(normal) - Remember opened categories in the left menu

Session storage based implementation to remember opened categories in left menu

Issue Ref: #2248

* lib_phpQuery updates

* Updates covering feedback points and functionality fixes

* Feedback updates

* Revert "lib_phpQuery updates"

This reverts commit dcd23b9418.

* First review

Change variable name to "remember" instead of "open".
Start using localStorage instead of sessionStorage.
Simplify code.

* Simplify remember categories init function

Replace 'session' with 'local' in function names and comment

Set open categories CSS as same as when category is opened in 'active' unfold mode

* Remove URLSearchParams check in remember categories init function

* Delete open categories on login and logout

* JSHint check fix

* Second review

* Make new mode the default for new users
* Always open active category
* Reduce / simplify code

* i18n French

* Revert default value

Wait a bit more for this decision / change

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2020-11-02 12:03:16 +01:00
Fake4d
c2e3bc7cab i18n update for German - added missing de translations (#3237)
* Add DE Translation

* i18n update for German

* i18n update for German

* i18n update for German

* Fix ignore

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2020-11-01 19:12:58 +01:00
Alexandre Alapetite
f33e261163 Fix sanitize feed description (#3222)
* Fix sanitize feed description

#fix https://github.com/FreshRSS/FreshRSS/issues/3221

* Simplification
2020-10-11 13:32:23 +02:00
Alexandre Alapetite
191cda42e6 Misc. minor
Whitespace...
2020-10-11 10:59:43 +02:00
Alexandre Alapetite
0319cc9d23 Minz allow parallel sessions (#3096)
* Minz allow parallel sessions

#fix https://github.com/FreshRSS/FreshRSS/issues/3093

* Array optimisation

* Array optimisation missing

* Reduce direct access to $_SESSION except in install process

* Fix session start headers warning

* Use cookie only the first time the session is started:
`PHP Warning:  session_start(): Cannot start session when headers
already sent in /var/www/FreshRSS/lib/Minz/Session.php on line 39`

* New concept of volatile session for API calls

Optimisation: do not use cookies or local storage at all for API calls
without a Web session
Fix warning:

```
PHP Warning:  session_destroy(): Trying to destroy uninitialized session
in Unknown on line 0
```

* Only call Minz_Session::init once in our index

It was called twice (once indirectly via FreshRSS->init())

* Whitespace

* Mutex for notifications

Implement mutex for notifications
https://github.com/FreshRSS/FreshRSS/pull/3208#discussion_r499509809

* Typo

* Install script is not ready for using Minz_Session
2020-10-06 23:19:45 +02:00
knasdk
e43b7ecd09 Use of existing tag name via input field (#3213)
* Use of existing tag name via input field

Use existing tag name, when tag name is typed into tag list's text field

* Indentation mistake

Just an indentation correction

* Final correction

Missed line 35.
2020-10-06 23:15:02 +02:00
Alexandre Alapetite
7652369359 Minz: Attach a notification to a request (#3208)
* Minz: Attach a notification to a request

Notifications should be attached to a request, not to a global session.
Fix
https://github.com/FreshRSS/FreshRSS/pull/3096#issuecomment-654891906
Prepare https://github.com/FreshRSS/FreshRSS/pull/3096

* Rename array

* Avoid string constants

Implement
https://github.com/FreshRSS/FreshRSS/pull/3208#issuecomment-703243863

* Improved logic

* Simplify storage

https://github.com/FreshRSS/FreshRSS/pull/3208#discussion_r499511213

* Fix notification bug in configuration/system
2020-10-05 19:03:33 +02:00
flo0627
6e610e501d Add toggle password visibility button on login form (#3205)
* Add password observer for login view and update Origine theme

* Update Alternative-Dark style

* Update BlueLagoon theme

* Update Dark theme

* Update Flat theme

* Update Screwdriver theme

* Update Origine-compact theme

* Update Pafat theme

* Coding style
2020-10-03 13:35:49 +02:00
Bartosz Taudul
f79194f4a6 Add Polish localization (#3190) 2020-09-29 14:20:40 +02:00
Alexandre Alapetite
bb9b166eb1 Fix CLI api_password (#3179)
* Fix CLI api_password

#fix https://github.com/FreshRSS/FreshRSS/issues/3177
Fix regression from https://github.com/FreshRSS/FreshRSS/pull/2675

* Update cli/_update-or-create-user.php

Co-authored-by: oupala <oupala@users.noreply.github.com>

Co-authored-by: oupala <oupala@users.noreply.github.com>
2020-09-17 09:43:39 +02:00
Nico Kaiser
5389dd5ddb i18n update for German (#3175)
This adds and improves some German translations.
2020-09-10 18:20:22 +02:00
Alexandre Alapetite
be5f9f2dce When ssl_verify is false, decrease SSL security (#3171)
When ssl_verify option is set to false for a feed, allow lower security such as SHA-1 signatures.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=900984
https://stackoverflow.com/questions/58342699/php-curl-curl-error-35-error1414d172ssl-routinestls12-check-peer-sigalgwr
Fix error of type `cURL error 35: error:1414D172:SSL routines:tls12_check_peer_sigalg:wrong signature`
Example of feeds:
https://www.version2.dk/it-nyheder/rss
https://ing.dk/rss/nyheder
2020-09-03 10:35:23 +02:00
Alexandre Alapetite
6fac0e40c4 Fix tag in user query (#3168)
* Fix tag in user query

#fix https://github.com/FreshRSS/FreshRSS/issues/3163

* Fix Travis
2020-09-02 08:55:43 +02:00
Luc SANCHEZ
e527afa2fa Add variable undeclared ($url) (#3164)
* Add variable undeclared ($url)

* Update ZipException.php

* modify
2020-09-01 12:50:28 +02:00
Luc SANCHEZ
ca965a490d Fix variable undeclared ($sql) (#3165)
* Fix variable undeclared ($sql)

* Update DatabaseDAOSQLite.php

modify
2020-09-01 12:50:00 +02:00
Alexandre Alapetite
48345403df Trim whitespace for feed passwords (#3158)
We output a space by default in the user interface for setting feed
passwords, in order to prevent aggressive password autocompletion
https://github.com/FreshRSS/FreshRSS/pull/881
However, user might not always override this white space when entering
the password. So here we trim.
(I believe legitimate leading / trailing spaces in passwords are
sufficiently rare not to be a problem)
2020-08-29 12:16:20 +02:00
Alexis Degrugillier
ee31722072 Change feed order in a category (#3131)
Before, the sorting was not human readable. Lower-cased feed names were
displayed after upper-cased feed names.
Now, the sorting is human readable. The sorting is done without taking into
account the name case.

See #3128
2020-08-05 09:40:58 +02:00
Alexandre Alapetite
c523f5a4e7 Relaxed to allow underscore _ in URL hostnames (#3133)
* Relaxed to allow underscore _ in URL hostnames

#fix https://github.com/FreshRSS/FreshRSS/issues/3132
https://bugs.php.net/bug.php?id=64948

* Minor fix in favicons redirect

* Minor fix in relative HREF for favicons
2020-07-31 16:33:45 +02:00
Mejans
48da9cb5b3 i18n update for Occitan (#3134)
* Update admin.php

* Update conf.php

* Update feedback.php

* Update gen.php

* Update sub.php
2020-07-30 15:35:32 +02:00
Frans de Jonge
5cee45922b [i18n] Update en-UK grammar and style (#3068)
Taken from <https://github.com/FreshRSS/FreshRSS/pull/3060>
2020-07-23 20:36:49 +02:00
Frans de Jonge
a23a7f2dbb [lang] Tags management → tag management (#3125)
* [lang] Tags management → tag management

Cf. <https://github.com/FreshRSS/FreshRSS/pull/3121#issuecomment-662922474>.

* Move tag management underneath subscription management
2020-07-23 12:15:46 +02:00
Alexis Degrugillier
909fdaca31 Add tag management page (#3121)
The new page allows to create, delete and rename tags.

See #3058
2020-07-23 11:31:38 +02:00
Alexis Degrugillier
399ce39579 Add language in JS context (#3116) 2020-07-14 12:31:47 +02:00
Alexis Degrugillier
f5676273fc Add tooltips on entries (#3115)
See #3111
2020-07-14 11:50:36 +02:00
Alexis Degrugillier
35eed83b64 Add a way to disable shortcuts (#3114)
When the user do not want to use a shortcut, he can let the shortcut value
empty. This will save an empty configuration thus disabling the shortcut.
The load default action allows to use default shortcut only for disabled
shortcuts.

See #3110
2020-07-14 11:02:30 +02:00
Alexis Degrugillier
8d8211b2a5 Add machine-readable dates in views (#3106)
This will allow to make some transformations on dates when needed.
See #3103 and #853
2020-07-14 10:51:45 +02:00
Germs2004
cada19eb87 US-English translation improvement (#3112) 2020-07-14 09:56:01 +02:00
Alexandre Alapetite
b7fd6d2d94 Show feed name inside the article (#3081)
* Show feed name inside the article

#fix https://github.com/FreshRSS/FreshRSS/issues/3079

* Normal view add date in subtitle

#fix
https://github.com/FreshRSS/FreshRSS/issues/3079#issuecomment-650109551
2020-07-13 15:46:50 +02:00
Marien Fressinaud
8619cf6fa6 Add a migration system (#2760)
* Add a Minz_Migrator class

Until now, we updated the database structure somewhere in the code but
it wasn't always consistent and somehow complicated to find. Also, this
code was always checked for nothing.

The Migrator aims to improve and ease the creation of migrations. It
should improve the way we apply the updates, making the update server
almost useless.

References:

- example of migration (before Migrator): cc0db9af4f (diff-11a53443fa81512b128c66b065df0679R10)
- update server: https://github.com/FreshRSS/update.freshrss.org
- PR moving the code of the update server to the core: https://github.com/FreshRSS/FreshRSS/pull/1760

* Automatically apply migrations

For now, administrators are used to have nothing to do during an update
else than getting the new code. I suggest to keep this behaviour and
automatically apply migrations if we detect new ones.

Another solution would be to create a CLI command and ask admins to call
it after getting the new code. It could hide migrations errors to end
users, but admin can forget to apply migrations since there are not used
to it.

* Add documentation for Minz Migrator

* Execute migrations even if next ones are applied

* Change mechanism to prevent multiple update at once

* Use mkdir to create the lock and to test it exists

Reference: https://stackoverflow.com/a/731634

* Append .lock to applied_migrations_path

There are no needs to define another file to serve as a lock.

* Change migrations naming convention

* Apply suggestions from code review

Co-Authored-By: Alexandre Alapetite <alexandre@alapetite.fr>

* Perform a low-cost migration versions comparaison

* Clarify version numbers concerning the migration system

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2020-07-08 12:11:55 +02:00
Alexandre Alapetite
3f9518b377 Hide feed credentials when adding a new feed (#3099)
Avoid showing HTTP Basic Auth credentials in feed error log and in feed
title (when there is no title provided)
2020-07-07 10:54:28 +02:00
Alexandre Alapetite
cbcbd64acf Fix HTTP Basic Auth when adding a new feed (#3098)
#fix https://github.com/FreshRSS/FreshRSS/issues/3097
Error from https://github.com/FreshRSS/FreshRSS/pull/3027
2020-07-06 23:14:21 +02:00
Alexandre Alapetite
051f1649f7 FeedMe table manage feeds + fix warning addFeed (#3075)
FeedMe is able to add/remove subscriptions.

Fix minor bug introduced by
https://github.com/FreshRSS/FreshRSS/pull/1731
If the category ID is provided, we must first search for the existing
category before trying to add a category with the provided name.
Fix:

```
SQL error addCategory: ["23000",19,"UNIQUE constraint failed:
category.name"]
```
2020-06-21 10:30:12 +02:00
Alexandre Alapetite
b9d2e6457a Fetch feed name / website / description if empty (#3071)
#fix https://github.com/FreshRSS/FreshRSS/issues/3067
2020-06-20 16:54:03 +02:00
bpatath
5c9d6a5396 Add auto-registration when using http_auth (#3003)
* Add auto-registration when using http_auth

* Document HTTP auth auto-registration

* Check email variable for HTTP auth auto-registration

* Auto-create HTTP users by default

* Fix Context init

(I will provide in another PR a better fix requiring a bit of global refactoring)

* Init language

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2020-06-19 23:01:19 +02:00
Ed Sandor
baaef3d9f4 3041 en us localization (#3060)
* Initial locaization from international english to United States English

examples:
favourite -> favorite
optimise -> optimize
occured -> occurred
labelled -> labelled
ok -> okay

* More spelling corrections

default English occured->occurred
cancelled -> canceled
labelled -> labeled

* Undo key spelling change

* i18n format and admin.php translating

* Translating admin.php

* more admin.php translating

* Translating conf.php

* Translating feedback.php and format command

* Translating gen.php

* Translating index.php

* Translating sub.php

* Translating user.php

* Translating install.php

* Fix 'there is no idle feed'

* FIx 'there is no feed to refresh"

* Add i18n manipulation option to ignore all unmodified translation keys

* Lint fixes

* Update keys newly add since original branch

* Revert unintenntional ru 'translation'

* Code review revisions

* Fix leading whitespace in ignore_unmodified api

* Update app/i18n/en-us/gen.php

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>

* Update app/i18n/en-us/admin.php

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>

* Update app/i18n/en-us/admin.php

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>

* Update error message for Make ignore-unmodified keys to use Make syntax.
(inline with 3062) Also rename ignore-unmodifed-key ->
ignore-unmodified-keys

* Replace makefile leading spaces with tabs

* Code review revisions

* Retab added php functions

* Missed tab replace

* Remove stray '-> todo'

Co-authored-by: root <root@x-freshrss.lan.ewsandor.com>
Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2020-06-19 22:59:27 +02:00