aboutsummaryrefslogtreecommitdiff
path: root/app/FreshRSS.php
AgeCommit message (Collapse)Author
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
2015-01-07Refactor FreshRSS_Share object to be more usableGravatar Marien Fressinaud
- FreshRSS_Share is the only object we manipulate - Add a way to register new share options easily - Move some i18n keys from index.php to gen.php See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-06Fix a bug in i18n initGravatar Marien Fressinaud
See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-06Fix i18n loading and availableLanguages callsGravatar Marien Fressinaud
- Change the way to init i18n - Add a availableLanguages() method to Minz_Translate See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-06BREAKING FEATURE: Remove general in configGravatar Marien Fressinaud
General attribute has been removed from system config. Now subattributes (e.g. environment, salt, title, etc.) are directly accessible. YOU HAVE TO FIX YOUR ./data/config.php file! - Remove the general array - Values inside this array must be kept - To see what it must look like, please have a look to ./data/config.default.php (but keep your values!!). See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-05Change name of user configuration var in ContextGravatar Marien Fressinaud
- FreshRSS_Context::$conf is replaced by FreshRSS_Context::$user_conf - Introduce FreshRSS_Context::$system_conf - Remove FreshRSS_Configuration object See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-05New configuration system (not working yet)Gravatar Marien Fressinaud
- Use only Minz_Configuration - register() method to load a new configuration file - get() to get a configuration - new exceptions related to configuration - fix a list configuration calls to have FRSS working Current problems to resolve: - How to handle configuration param verifications (i.e. check auth_type is a value from none, http_auth, persona or form) - We must use $conf = Minz_Configuration::get('system'); $general_conf = $conf->general; to access global system configuration which is quite annoying. How to change that? See https://github.com/FreshRSS/FreshRSS/issues/730
2014-12-07Load user extensions after all the global initsGravatar Marien Fressinaud
See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-06Improve system/user types for extensionsGravatar Marien Fressinaud
- system extensions can only be managed by an administrator - system extensions are loaded for all users (even if not logged) - user extensions are loaded for logged users only - system extensions loading is saved in global config.php file See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-04Remove old code for extensionsGravatar Marien Fressinaud