aboutsummaryrefslogtreecommitdiff
path: root/app/FreshRSS.php
AgeCommit message (Collapse)Author
2022-01-08Use typographic quotes (#4133)Gravatar Alexandre Alapetite
* 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
2021-12-31Add PHPStan (#4021)Gravatar Alexandre Alapetite
* 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-08-04Themes incl javascript files (#3739)Gravatar maTh
* it works * optimized
2021-02-28Travis: Enforce phpcs line length + whitespace (#3488)Gravatar Alexandre Alapetite
* Update Travis line length * Also check whitespace in CSS files * Fix line length ext.php * More syntax, string templates * Fix exclude-pattern * Test JS files as well
2021-02-11refactor: remove referer checks, as they are no longer needed (replaced by ↵Gravatar hesch
csrf tokens) (#3432)
2021-01-02Avoid manual initialisations of system or user configuration (#3070)Gravatar Alexandre Alapetite
* Avoid manual intialisations of system or user configuration More consistent use of Context * Simplify FreshRSS_Context::initUser * Remove a few manual get_user_configuration * A bit of debugging * Fix context user init * Fix install * Fix concurrency Concurrent requests could lead to bad race condition * Fix actualize cron Fix case when system i initialised several times
2020-12-31Fix bugs in anomymous mode (#3305)Gravatar Alexandre Alapetite
* Fix bugs in anomymous mode Login bug (submit button not working) and refresh bug (JS null exception, and then 403). * Take advantage of existing variable
2020-11-11Fix initI18n (#3249)Gravatar Alexandre Alapetite
* 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-10-05Minz: Attach a notification to a request (#3208)Gravatar Alexandre Alapetite
* 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-06-05Add language detection when the user is not logged in (#3022)Gravatar Alexis Degrugillier
Before, when the user was not logged in, pages where translated with the '_' user language. Now, they are translated with the user preferred language if there is one supported by FreshRSS or with the system default language.
2020-04-20Don't check email if feature disabled or for admin (#2917)Gravatar Marien Fressinaud
2020-03-01[UI] Add RTL support with RTLCSS (#2776)Gravatar Frans de Jonge
* Add dir info to gen.php & install.php! * Add `make rtl` command Using rtlcss because it has actually has a command-line application!
2019-12-22tec: Allow to change CSP header from controllersGravatar Marien Fressinaud
For an extension, I needed to call a script from an external domain. Unfortunately, the CSP headers didn't allow this domain and I had to patch manually the FreshRSS FrontController for my extension. It's obviously not a long-term solution since it has nothing to do in the core of FRSS, and I don't want to apply this patch manually at each update. With this patch, I allow changing the CSP header from inside the controller actions. It allows extensions to modify headers. It's also an opportunity to remove a bit of code from the FrontController. I wasn't happy with the previous implementation anyhow. Reference: https://github.com/flusio/xExtension-Flus/commit/ed12d56#diff-ff12e33ed31b23bda327499fa6e84eccR143
2019-12-03fix: Allow to refresh feeds if user isn't verified (#2694)Gravatar Marien Fressinaud
While I was looking at the number of articles of my users, I discovered some of them had none, while having a bunch of feeds though. I took a look at the logs generated by `app/actualize_script.php` and discovered that the script stopped strangely (in this example, "OK" for denise is expected, and more users too): ``` FreshRSS[1681]: FreshRSS Start feeds actualization... Starting feed actualization at 2019-11-29T16:37:19+00:00 Actualize alice... Actualize denise... Results: alice OK denise ``` After digging a bit, I quickly realized the script stopped always on users who didn't validate their emails. And indeed, we trigger a `Minz_Request::forward(..., true)` for these users, in the `FreshRSS` class. This function calls the `exit` function, which stops the script. This patch only allows the feed#actualize action to be executed for unverified users in order to avoid an early-`exit`. This is a quick-win solution, but I don't think it's a good one on the long term. I'll propose an alternative in another patch, later.
2019-08-29fix: Fix "validate email"-related issues (#2512)Gravatar Marien Fressinaud
* 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
2019-08-29Provide email address verification feature (#2481)Gravatar Marien Fressinaud
* 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 <alexandre@alapetite.fr> * Set PHPMailer validator to html5 before sending email * fixup! Remove trailing comma in userController
2019-08-14Add hooks to ExtensionManager (#2482)Gravatar Marien Fressinaud
Hooks allow to: - add items in menus - perform new actions at the end of FreshRSS initialization
2019-07-21Fix user self registration (#2442)Gravatar Alexandre Alapetite
* Fix user self registration Fix https://github.com/FreshRSS/FreshRSS/issues/2381 * CSRF for admin
2019-03-22Rework CSRF interaction with sessions (#2290)Gravatar Alexandre Alapetite
* Rework CSRF interaction with sessions Fix https://github.com/FreshRSS/FreshRSS/issues/2288 Improve security in some edge cases Maybe relevant for https://github.com/FreshRSS/FreshRSS/issues/2125#issuecomment-474992671 * Forgotten mime type
2019-02-13Remove deprecated CSP child-srcGravatar Alexandre Alapetite
It's been probably long enough since https://github.com/FreshRSS/FreshRSS/pull/1099
2019-02-13Less jQuery (#2234)Gravatar Alexandre Alapetite
* Less jQuery Follow-up of https://github.com/FreshRSS/FreshRSS/pull/2199 * Even less jQuery + global view unread title fix * Even less jQuery * Yet even less jQuery * Even less jQuery * Reduce some events * Even less jQuery * jQuery gone from main view +Fixed English i18n * Fix feed folded view * Remove Firefox 64 workaround Remove workaround for Gecko bug 1514498 in Firefox 64, fixed in Firefox 65 * Split to extra.js Avoid loading unneeded JavaScript code for the main view. + several adjustements * Improve CSS transition fold category * Rewrite shortcuts Remove library. Much faster, shorter, one listener instead of many. Control of the shortcut context. Fix https://github.com/FreshRSS/FreshRSS/issues/2215 * Remove debug * Minor syntax * Filter out unwanted shortcut modifiers * Menu overflow fix * Typo * Fix unfolding in mobile view * Remove jQuery from category.js * Remove jQuery from Global view
2018-10-14Remove some preload / prefetch (#2040)Gravatar Alexandre Alapetite
* Remove next prefetch This approach was only efficient in the specific case when no change was made (no mark-as-read, favourites, tags), and useless in the other situations. Removed to reduce server load. * Remove next prefetch from JavaScript too * Remove some preload / prefetch While useful for the first request, those preload / prefetch hints are slightly negative for the following requets, especially server-side, e.g. generating one log entry in Apache, and a bit more network traffic. * Revert mistake * Remove comment https://github.com/FreshRSS/FreshRSS/pull/2040#discussion_r223214915
2018-06-22Explicit quotes decoding (#1947)Gravatar Alexandre Alapetite
* Explicit quotes decoding * Explicit htmlspecialchars_decode and htmlspecialchars
2018-03-03Move shares (#1812)Gravatar Alexandre Alapetite
From ./data/ to ./app/ Fix manual updates like https://github.com/FreshRSS/FreshRSS/issues/1803#issuecomment-369371907 Left for later: support a ./data/shares.local.php for user-defined shares.
2017-11-04Small fix Mastodon shareGravatar Alexandre Alapetite
$a['method'] can be undefined. https://github.com/FreshRSS/FreshRSS/pull/1674 https://github.com/FreshRSS/FreshRSS/issues/1521
2017-11-04Add a Mastodon share (#1674)Gravatar Alexis Degrugillier
See #1521
2017-05-26Change CSS load order to help CustomCSS extensionGravatar Alexandre Alapetite
https://github.com/FreshRSS/Extensions/issues/13
2017-05-12Move default configuration filesGravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/issues/1531
2016-10-06Allow extensions for default accout in anonymous modeGravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/issues/1257#issuecomment-248111169
2016-08-13sticky-kit fix, and compatible async deferGravatar Alexandre Alapetite
And set correct parent option https://github.com/FreshRSS/FreshRSS/pull/1172
2016-08-13Merge conflictsGravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/pull/1172
2016-08-13CSRF token, update HTTP Referrer policy to same-originGravatar Alexandre Alapetite
https://www.w3.org/TR/referrer-policy/#referrer-policy-no-referrer https://github.com/FreshRSS/FreshRSS/issues/570 https://github.com/FreshRSS/FreshRSS/issues/955 https://github.com/FreshRSS/FreshRSS/issues/1198 https://github.com/FreshRSS/FreshRSS/issues/565 https://github.com/FreshRSS/FreshRSS/issues/554
2016-07-31Remove Mozilla Persona loginGravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/issues/1052
2016-07-08Make Sidebar StickyGravatar romibi
2016-04-29Load styles for two JSON casesGravatar Alexandre Alapetite
2016-04-23Revert; Notifications needed also for non-layout requestsGravatar Alexandre Alapetite
2016-04-23HTTP2 optimizationGravatar Alexandre Alapetite
Fast flush HTTP headers, push promise CSS. Requires PHP 5.3+ due to anonymous function. Do not load syles, scripts, and notifications for Ajax requests. https://github.com/FreshRSS/FreshRSS/issues/1089
2016-03-08X-Content-Type-Options: nosniffGravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/issues/1114
2016-03-01CSP compatibility with Firefox older than 45Gravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/pull/1075 https://github.com/FreshRSS/FreshRSS/pull/1078 https://developer.mozilla.org/en-US/Firefox/Releases/45#Security https://bugzilla.mozilla.org/show_bug.cgi?id=1045891
2016-02-21CSP different policies per controllerGravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/issues/1075
2016-02-21CSP for statistics and formsGravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/issues/1075
2016-02-21CSP: Use inline JSON instead of one-time cookieGravatar Alexandre Alapetite
Simpler, lighter https://github.com/FreshRSS/FreshRSS/issues/1075
2016-02-17CSP allow iframesGravatar Alexandre Alapetite
E.g. for YouTube videos, etc. https://github.com/FreshRSS/FreshRSS/issues/1075
2016-02-16CSP no inline javascript draftGravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/issues/1075
2015-05-10Bug Page 403 ne peut s'afficher si Translate n'est pas instancié avantGravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/issues/821
2015-01-14Fix coding style in extension managerGravatar Marien Fressinaud
Yep, same as 8968288...
2015-01-09Init auth before user configurationGravatar Marien Fressinaud
Add a lot of comments to explain how work the FRSS front controller and the order of initializations. Fix https://github.com/FreshRSS/FreshRSS/issues/745
2015-01-08Merge branch 'dev' into 252-extensionsGravatar Marien Fressinaud
Conflicts: app/FreshRSS.php app/Models/Configuration.php app/views/index/index.phtml app/views/index/normal.phtml lib/Minz/Configuration.php lib/Minz/Translate.php lib/lib_rss.php
2015-01-07Add first test for a generic ConfigurationSetterGravatar Marien Fressinaud
We are blocked if a setter has to update several values. ConfigurationSetter will be updated. See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-07Reorganize FreshRSS initGravatar Marien Fressinaud
See https://github.com/FreshRSS/FreshRSS/issues/730