Commit Graph

2098 Commits

Author SHA1 Message Date
Alexandre Alapetite
cd5ebcee05 Fix SQLite CONCAT used for search (#2777)
Used e.g. for searches `inurl:xxx`

Co-authored-by: Marien Fressinaud <dev@marienfressinaud.fr>
2020-01-20 11:42:44 +01:00
Julien-Pierre Avérous
f3ff4a59e6 Fix 'dateAdded()' getter (#2774)
Be homogeneous in field used, to prevent weird behavior in the future.
2020-01-20 11:23:55 +01:00
Julien-Pierre Avérous
01576e6317 [API, extension] Use 'dateAdded()' to forge 'crawlTimeMsec' & 'timestampUsec' field in greader API. (#2773)
- Add the ability to customize 'dateAdded()', so an extension can change it if needed.
2020-01-18 11:58:46 +01:00
Marien Fressinaud
8eabc068c9 fix: #2701 Fix look of authors (#2771)
This fix makes the authors part of the "title item", so it's not
considered as another block. This is not perfect since authors will
disappear on small screens, but we can discuss of putting titles on
multi-lines (see https://github.com/FreshRSS/FreshRSS/issues/2344)
2020-01-17 08:11:05 +01:00
Offerel
68863fbac8 Show Favorites as Unread (#2766)
Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
Co-authored-by: Marien Fressinaud <dev@marienfressinaud.fr>
2020-01-16 17:11:04 +01:00
Marien Fressinaud
d7ac234036 fix: Make sure to have user conf in hasAccess (#2769)
The `FreshRSS_Auth::hasAccess` method is called during auth
initialization (`app/FreshRSS.php:78`), only for `user#create` action.
However, at this step, the `user` configuration namespace hasn't be
initialized yet, and so users weren't able to register because of the
exception... quite critical!
2020-01-16 14:25:51 +01:00
Frans de Jonge
e60abfee4d [fix] Correct default view for label (#2767)
While testing <https://github.com/FreshRSS/FreshRSS/pull/2766> I noticed that clicking the label activated the wrong dropdown.
2020-01-16 11:23:49 +01:00
Alexis Degrugillier
3c099c7853 Add an admin flag on users (#2709)
Now FRSS supports more than one admin. Admins have the same rights as
the default user. Admins can promote or demote other users. The default
user is considered as an admin even if it does not have the admin flag
enabled.

See #2096
2020-01-06 20:28:04 +01:00
Alexandre Alapetite
2aff347b2e Fix wrong getHeader refactoring (#2749)
* Fix wrong getHeader refactoring

Fix regression introduced by
https://github.com/FreshRSS/FreshRSS/pull/2373
The refactoring required a call to init() even for static functions,
which is most of the time not done.
Removed premature abstraction of `$_SERVER`, which was the root cause of
the bug.
https://github.com/FreshRSS/FreshRSS/issues/2748#issuecomment-569898931

* Refactoring: Move serverIsPublic to Minz_Request

* Add mitigations for wrong configurations

Due to the regression, we have some existing configurations with a bad
base_url

* Forgot one instance
2020-01-04 23:35:42 +01:00
Alexandre Alapetite
acc50df0ef Fix logging environment constants (#2745)
* Fix logging environment constants

* COPY_LOG_TO_SYSLOG was only working when Syslog was used
* FRESHRSS_ENV was not properly used to set logging level

* Simplify code

Always call `openlog()` even when it is not used

* Always specify syslog properties

https://github.com/FreshRSS/FreshRSS/pull/2745#discussion_r362207445

* $username is also needed further down

* No new line in syslog
2020-01-03 18:50:33 +01:00
romibi
518672fd27 Fix labels dropdown not scrollable after a while (#2727) 2019-12-28 15:01:55 +01:00
石渠清心
d6b9237630 Update zh-cn (i18n) (#2730) 2019-12-28 12:30:47 +01:00
Marien Fressinaud
8f5d8af72f tec: Fix test suite (#2721)
* Rework the travis file to enable PHPUnit

I realized that unit tests weren't executed on Travis. While working on
this file to enable these tests, I started to think we could simplify
it.

I separated jobs so:

- PHP linter and tests are only performed on PHP 7.3
- Translations are tested separatly so they can fail (it was already the
  case but it was hard to understand the way it was done)
- PHP 5.6 only checks syntax issues
- the last job checks css, js, etc. (it didn't change)

PHPUnit is not executed on 5.6 because only the version 5 is available
while the latest version is the 8 (https://phpunit.de/supported-versions.html).

I think it's easier to read (each job is more explicit) but I'm not a
Travis expert so maybe there's some room for improvements.

* Fix failing tests

The category `_name` regression was introduced in commit b323ed084.

I wasn't able to understand when and why Search tests was wrong.

The rest is about upgrade of PHPUnit.
2019-12-23 11:00:22 +01:00
Marien Fressinaud
7802fd33a6 tec: Allow to change CSP header from controllers
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-22 15:01:02 +01:00
Marien Fressinaud
0765840d9d tec: Add ~ID~ placeholder in share system (#2707)
I'm currently playing with a small extension to improve the email sharing
system. It allows to create a message and send an email directly through
FreshRSS. For that, I need to retrieve the shared article. I could use
the link or the title but it would be less robust and less efficient.

Reference: https://github.com/FreshRSS/FreshRSS/issues/300
2019-12-09 09:41:18 +01:00
Clemens Neubauer
08c6a1bdc1 Extend hooks (#2704)
It adds two new hooks to have more options for influencing with extensions.
2019-12-07 12:59:53 +01:00
Alexis Degrugillier
d13a8a0eb1 Add user language display
When managing users, I've added the language they selected to be able
to communicate with them with the selected language (if I know it).
It could be useful when managing a community or a paid service.
2019-12-07 12:57:52 +01:00
Alexis Degrugillier
3e49b44839 Update i18n cli tools (#2673)
* Update i18n cli tools

Few things were bugging me when using the cli tool for i18n. So I've modified
the tools to be easier to use.

First, the tool automatically adds missing keys to all languages. This way, we
always have all keys in all languages.
Second, the tool detects all untranslated keys and adds automatically the todo
comment after the value.
Third, when adding a new key, the key is pushed to all languages at once. There
is no need to duplicate it manually. Thus making the duplication process obsolete.
Fourth, translation and ignore keys are manipulated at the same time. Thus we
don't have obsolete ignored strings anymore.

* Add i18n rules

I find that having the common rules in the Makefile is easier to use,
as long as you know they are here. As it is self documented, people
will see the new rules when using make.

* Use long parameters in Makefile

I find that using long parameters in scripts makes it easier to understand
what's going on. So I've switched all short parameters to long one.

* Format all i18n files

I've used the updated version of the cli tools to have some output
that can be consistently formated. This commit is a huge formating
commit. Nothing was added but some comments were removed in the
process.
2019-12-04 08:27:39 +01:00
Marien Fressinaud
d0f1f9f141 Separate the update API password endpoint (#2675)
* Extract hashPassword method from userController

* Extract and refactor fever key-related methods

* Move update of API password to dedicated action

* Simplify the controller by refactoring feverUtil

* Add locales
2019-12-03 23:11:06 +01:00
Alexis Degrugillier
0de7e84380 Upgrade user management page (#2417)
Before, the use of the user management page was a little bit tedious
when there was many users. One must select a user to view some
metrics, to update it, or to delete it.
Now, the view is clearer because it shows all users at once with
their metrics. I introduced a detail page that repeats the metrics
but also allow to purge the user's feeds, to update or delete the
user.

This is the first step to make that page more useful and user-friendly.
I have in mind to add a pager for when there is a lot of users, a metric
to know when was the last time the user was using the application, and
a flag to know if the user has admin rights.

See #2096 and #2504 for ideas and inspiration
2019-12-03 22:32:17 +01:00
Marien Fressinaud
68c006b7ad fix: Allow to refresh feeds if user isn't verified (#2694)
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-12-03 22:27:20 +01:00
Sebastian K
28908ace27 i18n german translations (#2690)
started translating open todos
2019-11-27 23:00:34 +01:00
Purexo
86dda60431 FIX email token check if not in user-config (#2686)
* FIX email token check if not in user-config

* fix missing semicolon
2019-11-26 19:26:07 +01:00
Alexandre Alapetite
bb5d15f7c6 Do not obbey rel=self if WebSub is disabled (#2659)
* Do not obbey rel=self if WebSub is disabled

https://github.com/FreshRSS/FreshRSS/issues/2654

* Correct variable

https://github.com/FreshRSS/FreshRSS/pull/2659#discussion_r347552063

* Update app/Controllers/feedController.php
2019-11-21 16:23:20 +01:00
Alexandre Alapetite
131ad1014b Fix updateTagAttribute (#2682) 2019-11-21 15:22:52 +01:00
Alexandre Alapetite
1ddf98c50b Fix adding categories in MySQL 5.5 (#2672)
Fix https://github.com/FreshRSS/FreshRSS/issues/2670 (from
https://github.com/FreshRSS/FreshRSS/pull/2335 )
Tested with MySQL 5.5.40, the oldest version on Docker Hub
Debian 8.0 Jessie ships MySQL 5.5.43
2019-11-18 19:46:38 +01:00
Alexis Degrugillier
d3735d04fc Add log in fever api saving process (#2664)
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
2019-11-18 10:04:32 +01:00
Alexandre Alapetite
3d6f9c5898 Fix sharing/integration (#2669)
Arg, it looks like the submit button in sharing/integration page is broken in 1.15.2 :-(
Fix https://github.com/FreshRSS/FreshRSS/pull/2643
2019-11-15 22:11:23 +01:00
rezad
8bdf7b09f2 Replace some http links with https links (#2662) 2019-11-13 20:52:52 +01:00
Frans de Jonge
52ca1887d7 also put it on the title in the flux list 2019-11-12 11:27:20 +01:00
Frans de Jonge
b6473890d0 Automatic mostly-right RTL with dir="auto"
See <https://github.com/FreshRSS/FreshRSS/issues/673#issuecomment-552802523>.
2019-11-12 10:19:02 +01:00
Alexandre Alapetite
bec7566429 Sanitize UTF-8 before commiting entries (#2649)
Fix https://github.com/FreshRSS/FreshRSS/issues/2645
2019-11-11 19:48:45 +01:00
Alexandre Alapetite
6fb60d470a Fix DB optimize for MySQL (#2647)
`pdo->exec()` is not appropriate for MySQL `OPTIMIZE` because `OPTIMIZE`
returns some data and not only a code and then fails.
2019-11-11 19:48:23 +01:00
Alexis Degrugillier
59f284d229 Rename sharing action (#2643)
Before, some ad-blocker rules were preventing to display the sharing page
because of its name. I've renamed that page to integration but kept every
thing else identical. So it's still called sharing through out the
application.
If needed, this can be addressed as well.

See #2509 and #2419
2019-11-08 23:49:43 +01:00
Alexandre Alapetite
6d596e9e54 More reset default category name (#2639)
Improve https://github.com/FreshRSS/FreshRSS/pull/2638
2019-11-06 20:49:04 +01:00
Alexandre Alapetite
61878794a9 Fix name of default category (#2638)
Fix https://github.com/FreshRSS/FreshRSS/issues/2637
2019-11-06 19:49:51 +01:00
Alexandre Alapetite
22030155f8 Fix database autocreate at install (#2635)
* Fix database autocreate at install

Several bugs prevented the auto-creation of the database in Web and CLI
installs.
Fix
https://github.com/YunoHost-Apps/freshrss_ynh/issues/84#issuecomment-549818408

* initDb

https://github.com/FreshRSS/FreshRSS/pull/2635#discussion_r343107795
2019-11-06 15:16:00 +01:00
Alexandre Alapetite
122e4b412a Fix PostgreSQL size bug for uppercase (#2631)
Crash for users with uppercase letters
2019-11-04 18:13:13 +01:00
Alexandre Alapetite
2495172a05 Better git fetch (#2626)
Related to https://github.com/FreshRSS/FreshRSS/pull/2625

If for some reasons branches have diverged:, e.g.:

```
$ git status -sb --porcelain remote
## dev...origin/dev [ahead 4, behind 1]
```
2019-11-04 18:05:20 +01:00
Alexandre Alapetite
7819a43197 Default or custom OPML (#2627)
* 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
2019-11-04 17:45:15 +01:00
Alexandre Alapetite
c277e15141 Git fetch+reset instead of clean+fetch+merge (#2625)
Fix https://github.com/FreshRSS/FreshRSS/issues/2619
Avoid potentially dangerous git clean, and use more robust fetch + reset
strategy instead
2019-11-02 13:38:04 +01:00
Marien Fressinaud
4058898de2 Fix categories sorting (#2616)
I had a bug when some articles in a category were unread. Sometimes,
filtering the category displayed all the articles, even with the "Adjust
showing" option.

A reasonably good guess was to look the last commits that impacted the
categories and, indeed, it was introduced by the new category sorting
system.

The sort function (`usort`) doesn't keep the index association, which is
important here. I must admit I don't understand exactly why (I didn't
search), but the keys are probably used somewhere. Another fix would be
to not rely on these keys anymore.

The bug was introduced in 042fcd5e93

- Ref PR: https://github.com/FreshRSS/FreshRSS/pull/2592
- Ref usort: https://www.php.net/manual/en/function.usort.php
- Ref uasort: https://www.php.net/manual/en/function.uasort.php
2019-10-31 12:33:18 +01:00
Quentí
00b0f76ef4 Update sub.php (#2615) 2019-10-30 20:08:48 +01:00
Alexis Degrugillier
6c63e0186a Update link in the README (#2614)
Website seems dead. Changed by repository URL.

See #2613
2019-10-29 23:11:27 +01:00
Frans de Jonge
e0275beb8d [i18n] Update Dutch translation for v1.15 (#2610)
Cf. <https://github.com/FreshRSS/FreshRSS/pull/2599>.
2019-10-27 20:54:06 +01:00
Alexandre Alapetite
e4511c3d34 keep_max disabled by default for existing installations (#2607)
Fix https://github.com/FreshRSS/FreshRSS/issues/2600
Second attempt https://github.com/FreshRSS/FreshRSS/pull/2602
2019-10-27 18:04:59 +01:00
Alexis Degrugillier
571fb31af8 Add a warning message for Firefox user (#2606)
From version 63 and onwards, Firefox has removed the ability to add subscription
services. This is a warning for deprecation on the subscription tools page.

See #2100
2019-10-27 17:34:55 +01:00
Quentí
c39b716a70 [i18n] Occitan update: purge options (#2603)
* Update sub.php

* Update gen.php

* Update conf.php
2019-10-26 20:00:32 +02:00
Alexandre Alapetite
b546d2d77d keep_max disabled by default for existing installations (#2602)
https://github.com/FreshRSS/FreshRSS/issues/2600
2019-10-26 17:51:23 +02:00
Alexis Degrugillier
f6e10579f2 Add category order (#2592)
* Add category order

Each category has a new 'priority' attribute. It is used to sort categories in
views. Categories with the same priority are sorted alphabetically. Categories
with no priority are displayed after those with one.

For example, if we have the following categories:
- A (priority: 2)
- B (no priority)
- C (priority: 1)
- D (priority: 2)
- E (no priority)
- F (priority: 1)

They will be displayed in the following order:
- C
- F
- A
- D
- B
- E

See #190

* Shorten help text

It took too much room and will not be so necessary once we have drag &
drop
2019-10-26 13:16:15 +02:00