Commit Graph

581 Commits

Author SHA1 Message Date
Kevin Decherf feb239ea10 mysql: change collation of tag table
utf8mb4_unicode_ci considers that 'caché' is equal to 'cache' which
can lead to attaching incorrect tags to entries. This issue is due to
some unicode normalization done by MySQL.

utf8mb4_bin makes no unicode normalization, letting wallabag to consider
'cache' and 'caché' as two different tags.

We change the collation of the whole table as Doctrine does not support
setting a collation on a column for a specific platform (it tries to
apply utf8mb4_bin even for pgsql and sqlite).

Fixes #3302

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-05-19 23:37:49 +02:00
Kevin Decherf 2c290747cb api/entries: add parameter detail to exclude or include content in response
detail=metadata will nullify the content field of entries in order to
make smaller responses.

detail=full keeps the former behavior, it sends the content of entries.
It's the default, for backward compatibility.

Fixes #2817

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-05-18 18:11:08 +02:00
Jeremy Benoist b8b37ccdea
CS 2019-05-15 14:58:40 +02:00
Jeremy Benoist 9f0957b831
Merge remote-tracking branch 'origin/master' into 2.4 2019-05-15 14:38:07 +02:00
Jeremy Benoist 77bd7f690d
CS 2019-05-10 15:49:39 +02:00
Jeremy Benoist 68a90821a3
Handle redirection from previous feeds 2019-04-26 13:40:58 +02:00
Jeremy Benoist f277bc042c
Fix tests & cs & migration 2019-04-26 12:53:21 +02:00
Thomas Citharel 531c8d0a5c
Changed RSS to Atom feed and improve paging 2019-04-25 13:46:31 +02:00
Jeremy Benoist 35359bd3c6
Adding more tests to cover different scenario 2019-04-24 15:28:15 +02:00
Jeremy Benoist ff8f338dc2
FIx unrelated failing test 2019-04-23 22:48:04 +02:00
Jeremy Benoist f45496336f
Add ability to match many domains for credentials
Instead of fetching one domain, we use the same method as in site config (to retrieve the matching file) and handle api.example.org, example.org, .org (yes the last one isn’t useful).
If one of these match, we got it and use it.
2019-04-23 22:39:31 +02:00
Jeremy Benoist c579ce2306
Some cleanup
Also, do not run the hashed_url migration into a Doctrine migration
2019-04-01 14:34:20 +02:00
Jeremy Benoist 8a64566298
Use a better index for hashed_url
It'll most often be used in addition to the `user_id`.
Also, automatically generate the hash when saving the url.
Switch from `md5` to `sha1`.
2019-04-01 13:51:57 +02:00
Jeremy Benoist 9c2b2aae70
Keep url in exists endpoint
- Add migration
- Use md5 instead of sha512 (we don't need security here, just a hash)
- Update tests
2019-04-01 13:24:40 +02:00
Thomas Citharel bfe02a0b48
Hash the urls to check if they exist
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-04-01 13:24:40 +02:00
Jeremy Benoist 3620dae1e6
Merge remote-tracking branch 'origin/master' into 2.4 2019-04-01 13:16:15 +02:00
Jeremy Benoist 8c0ba95307
Adding more tests 2019-02-27 15:01:03 +01:00
Kevin Decherf 12a97c3522 tests: fix broken session clients for rest entry deletion tests
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-02-20 15:57:56 +01:00
Kevin Decherf 508302042f EntryRestController: add support of expect parameter to delete action
The expect parameter enables an application to request the whole entry
or only the id when requesting its deletion.

`expects` defaults to `entry` to prevent any API breakage.

Fixes #3711

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-02-20 15:57:50 +01:00
Kevin Decherf 4e0ed3368d tests: create entry for testDeleteEntry, fix missing id
When using the entity manager to retrieve an already stored entry, the
id disapears from $entry after the first delete call. This leads to
testing a nonexistent endpoint (api/entries/.json) during the second
delete call.

This change now creates an entry specifically for the test.

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-02-17 15:25:21 +01:00
Jeremy Benoist 18460b2d79
Merge remote-tracking branch 'origin/master' into 2.4 2019-02-07 18:01:15 +01:00
Jeremy Benoist 8d082488e9
Improve checks & add tests 2019-01-28 06:03:16 +01:00
Jeremy Benoist a0c5eb003f
Change the way to enable 2FA
And add a step to validate a generated code from the OTP app
2019-01-23 13:28:24 +01:00
Jeremy Benoist edc79ad886
Fix test for custom version of the tidy extension 2019-01-23 13:28:02 +01:00
Jeremy Benoist a6b242a1fd
Enable OTP 2FA
- Update SchebTwoFactorBundle to version 3
- Enable Google 2fa on the bundle
- Disallow ability to use both email and google as 2fa
- Update Ocramius Proxy Manager to handle typed function & attributes (from PHP 7)
- use `$this->addFlash` shortcut instead of `$this->get('session')->getFlashBag()->add`
- update admin to be able to create/reset the 2fa
2019-01-23 13:28:02 +01:00
Jeremy Benoist 019e1acc49
Factorize sendResponse between Api controllers
And run newer cs fixer
2019-01-22 20:42:25 +01:00
Craig Roberts 9133bd02d1
[wallabag/wallabag#2611] Fix PHPCS lint errors 2019-01-22 20:42:25 +01:00
Craig Roberts b32057980e
Fixes [wallabag/wallabag#2611] Add a basic Search REST endpoint
- Adds a new `search` key to `src/Wallabag/ApiBundle/Resources/config/routing_rest.yml`
- Reuses the `getBuilderForSearchByUser` method from the EntryRepository
- Supports, `term`, `page`, and `perPage` query parameters
- Some very basic tests
2019-01-22 20:42:24 +01:00
Jeremy Benoist 0447a75b06
Use only one method to randomize
Instead of one per type, one for all is ok.
2019-01-19 21:09:33 +01:00
Jeremy Benoist 1e0d8ad7b7
Enable PHPStan
- Fix error for level 0 & 1 (level 7 has 699 errors...)
- Add `updated_at` to site_credential (so the `timestamps()` method applies correctly)
2019-01-18 15:25:50 +01:00
Jeremy Benoist 3bd65991ad
Add a new endpoint to retrieve information from the wallabag instance
Useful for api client which required some information.
We might add more inside them in the future.

The endpoint /api/version should be avoided now as it contains not so much information rather the version.
2019-01-15 10:17:11 +01:00
Jeremy Benoist 5419a8368e
Merge remote-tracking branch 'origin/master' into 2.4 2019-01-15 09:41:18 +01:00
Jeremy Benoist 78e3fafa3f
Avoid error when a bad `order` parameter is given
Only allowed parameter are asc & desc
2019-01-14 17:01:21 +01:00
Jérémy Benoist 3625833b2c
Merge pull request #3826 from wallabag/epub-toc
Rework of EPUB/PDF exports
2019-01-11 13:34:38 +01:00
Jérémy Benoist 03663530ed
Merge pull request #3831 from wallabag/fix/api-bad-client-id
Cast client id to avoid PG error
2019-01-10 17:03:03 +01:00
Jeremy Benoist 3a2d4cf9fd
Cast client id to avoid PG error
If someone send a malformated client_id when trying to authenticate using the API we got a 500 if wallabag use postgres because the request send a string instead of an integer.
2019-01-09 23:31:14 +01:00
Kevin Decherf dac93644e8 EntriesExport: sanitize filename and fix tests
Filename will now only use a-zA-Z0-9-' and space.

Fixes remaining filename issue on #3811

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-01-08 15:13:35 +01:00
Jérémy Benoist d2aec7096d
Merge pull request #3820 from lizyn/bugfix/incorrect-calculation-of-CJK-characters-in-reading-time-estimation
Fix incorrect reading time calculation for entries with CJK characters
2019-01-07 10:17:29 +01:00
lizyn 7f8630b91c Counting two characters together as a word in CJK 2019-01-06 01:21:13 +08:00
Jeremy Benoist 35983eb9bb
Improve reading time tests 2019-01-04 11:23:33 +01:00
Kevin Decherf 6c40d7fc85 TagRestController: fix test for tag without entries
As the deletion now requires that at least one entry for the user must
be linked to the given tag, we fix the test testDeleteUserTag by linking
it to an entry.

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-12-30 01:34:49 +01:00
Kevin Decherf 0ee9848231 TagRestController: add tests to ensure that other user's tags are unreachable
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-12-30 01:34:49 +01:00
lizyn 5becf260fa fix incorrect reading time calculation for entries with CJK characters 2018-12-25 15:31:44 +08:00
Jeremy Benoist 877787e5fe
Fix utf8mb4 on vendor tables
When creating the schema for test these tables use default length for
string: 255. Which fail when using utf8mb4.

> Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

Also move the `setKeepStaticConnections` in before and after class to
avoid:

> SAVEPOINT DOCTRINE2_SAVEPOINT_2 does not exist

See https://github.com/dmaicher/doctrine-test-bundle#troubleshooting
2018-11-28 22:04:55 +01:00
Jeremy Benoist 9a8a1bdfdb
Use our own fork for CraueConfigBundle
Mostly to fix utf8mb4 issue
2018-11-28 22:04:55 +01:00
Jeremy Benoist b13b2ef052
CS 2018-11-28 22:04:55 +01:00
Jeremy Benoist 8f2038e5b1
Fix tests 2018-11-28 22:04:55 +01:00
Jeremy Benoist b878be4cc9
Merge remote-tracking branch 'origin/master' into 2.4
# Conflicts:
#	web/wallassets/baggy.js
#	web/wallassets/manifest.json
#	web/wallassets/material.css
#	web/wallassets/material.js
2018-11-25 09:58:18 +01:00
Jeremy Benoist dc90eab32b
Prepare 2.3.4 release 2018-11-23 08:34:13 +01:00
Kevin Decherf 6059967951 updateOriginUrl: remove 'query string' case from ignore list
Two urls with a different query string may refer to two different pages
so keep them both.

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-10-24 22:27:27 +02:00
Kevin Decherf b49c87acf1 ignoreOriginUrl: add initial support of ignore lists
Add the ability to specify hosts and patterns lists to ignore the given
entry url and replace it with the fetched content url without touching
to origin_url.

This initial support should be reworked in the following months to move
the hardcoded ignore lists in the database.

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-10-22 23:42:09 +02:00
Kevin Decherf fc040c749d updateOriginUrl: add behavior when diff is fragment and query
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-10-22 23:08:58 +02:00
Kevin Decherf e07fadea76 Refactor updateOriginUrl to include new behaviors behaviors
- Leave origin_url unchanged if difference is an ending slash
- Leave origin_url unchanged if difference is scheme
- Ignore (noop) if difference is query string or fragment

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-10-22 23:01:16 +02:00
Kevin Decherf 781864b954 ContentProxy: swap entry url to origin_url and set new url according to graby content
Closes #3529

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-10-21 16:15:31 +02:00
Jérémy Benoist e673b54f70
Merge pull request #3574 from shulard/feature/rename-tags
Allow to rename tags from the web interface.
2018-10-15 08:32:59 +00:00
Jeremy Benoist 4d4147b228
Ensure language is valid
- Do not override locale if user has choosen a locale from the login screen.
- Add some tests about locale url
2018-10-13 09:39:00 +02:00
Jeremy Benoist 115de64e5b
Jump to Symfony 3.4
Thanks to the BC compatibility, almost nothing have to be changed.
All changes are related to new bundle version of:
- SensioFrameworkExtraBundle
- DoctrineFixturesBundle
2018-10-04 14:11:57 +02:00
Stéphane HULARD 03b2058dbe
Add tests about the tag renaming process. 2018-09-25 10:18:36 +02:00
Tobi823 28cc645b93 Run php-cs-fixer for fixing coding standard issues (on ContentProxyTest) 2018-09-23 23:42:05 +02:00
Tobi823 d64139d812 Make helper methods strToHex and hexToStr in ContentProxyTest.php private
to prevent misusage (from outside this class)
2018-09-21 13:31:28 +02:00
Tobi823 c01d953292 Add tests for logic
Try to translate the title of a PDF from UTF-8 (then UTF-16BE, then WINDOWS-1252) to UTF-8
2018-09-21 13:15:00 +02:00
Sébastien Viande 7975395d10
Entry: add archived_at property and updateArchived method 2018-09-21 10:33:33 +02:00
Jeremy Benoist 84b3bdaac0
Liberation goes https 2018-09-21 09:07:40 +02:00
Jeremy Benoist 4408ebd40a
Fix tests 2018-09-07 15:18:00 +02:00
Kevin Decherf 2a1ceb67b4 php-cs-fixer
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-09-05 14:25:32 +02:00
Jeremy Benoist 72efc80fdc
Removing failing test from Travis 2018-08-19 16:38:48 +02:00
Simounet e6f12c0734 More robust srcset image attribute handling
Linked to HTMLawed PR https://github.com/kesar/HTMLawed/pull/17
2018-07-12 14:29:30 +02:00
Jeremy Benoist 9c48053b14
Replace SO url by lemonde
Looks like we got a lot of random failing while grabing SO content, replacing it might fix the problem.
2018-07-05 14:50:27 +02:00
Simounet 3fbbe0d9f1 Fix image downloading on null image path 2018-07-05 11:40:51 +02:00
Jeremy Benoist 778543311f
Fix tests 2018-06-06 17:34:20 +02:00
Simounet c15bb5ad72 Fix srcset attribute on images downloaded 2018-06-01 13:49:16 +02:00
Floran Brutel 08d6bedcaa
Allow login by email 2018-04-01 20:57:10 +02:00
Floran Brutel 80d4260a8e
Fix CS in UtilsTest.php 2018-03-31 12:55:27 +02:00
Floran Brutel 739a4024fa
Replace zataz url 2018-03-30 23:09:03 +02:00
Floran Brutel 3be96dcb17
Use https instead of http for bild.de to fix tests 2018-03-29 22:58:40 +02:00
Jeremy Benoist bf283db8e6
20 Minutes is now https 2018-02-24 22:02:52 +01:00
Nicolas Lœuillet 5614df19cf Fixed tests 2018-01-12 11:19:11 +01:00
Kevin Decherf b8568662bd php-cs
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2017-12-31 13:19:26 +01:00
Kevin Decherf e0a862b626 Add test to prevent regression for #3534
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2017-12-31 00:56:40 +01:00
Jeremy Benoist acc0a80179
Add missing assertion in tests 2017-12-18 13:29:34 +01:00
Jeremy Benoist 5661e8d42a
Fix countable in tests 2017-12-18 13:29:34 +01:00
Jeremy Benoist 4b6942d2d8
Add missing TestCase namespace 2017-12-18 13:29:33 +01:00
Jeremy Benoist 26e2f07419
Fix typo 2017-12-18 13:29:33 +01:00
Jeremy Benoist bd91bd5c32
Use namespaced PHPUnit classes 2017-12-18 13:29:33 +01:00
Kevin Decherf f5ea67e4cf api: copy entry object before sending, to keep id
Workaround for https://github.com/wallabag/android-app/issues/646

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2017-12-17 21:07:46 +01:00
Kevin Decherf 300f293cb1 Add test on EntryControllerTest for #3442
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2017-12-13 22:44:31 +01:00
Kevin Decherf af29e1bf07 Fix empty title and domain_name when exception is thrown during fetch
Add a new helper to set a default title when it's empty:
1/ use basename part of entry's path, if any
2/ or use domain name

Fixes #2053

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2017-12-13 22:44:31 +01:00
Christophe VERGNE a40a8038d3
Fix All RSS not accessible if not logged in + Tests 2017-12-11 16:04:06 +01:00
Jérémy Benoist ceff312db8
Merge pull request #3401 from aaa2000/migration-initial
Add an initial doctrine migration
2017-11-25 12:28:41 +01:00
Jérémy Benoist f818f64145
Merge pull request #3431 from wallabag/disable-site-credentials
Disable controller access if feature disabled
2017-11-22 15:11:25 +01:00
Jeremy Benoist ef2b4041fb
Disable controller access if feature disabled
If `restricted_access` is disabled, accessing `/site-credentials/` must be disabled.
2017-11-22 10:00:45 +01:00
adev 2680b0bc8c Fix installation command 2017-11-21 21:35:17 +01:00
Nicolas Lœuillet 95b7d92ea5
Merge pull request #3425 from wallabag/add-setting-for-headers
Added internal setting to enable/disable headers storage
2017-11-21 13:26:24 +01:00
Jeremy Benoist 709e21a3f4
Define storeArticleHeaders false by default
Fix tests which must use `$storeArticleHeaders`.
Fix CS
2017-11-21 10:37:36 +01:00
Jeremy Benoist 64a5a6cfc5
CS 2017-11-21 10:30:35 +01:00
Nicolas Lœuillet 8a21985474 Added internal setting to enable/disable headers storage 2017-11-20 18:47:48 +01:00
Kevin Decherf eae8138b33 Fix phpcs
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2017-11-19 15:26:13 +01:00
Kevin Decherf 65152fcb89 Improve EntryRestControllerTest for origin_url
Ensure that origin_url is initially null
Ensure patching entry with origin_url=''
Ensure patching entry with origin_url=null

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2017-11-19 15:02:11 +01:00
Kevin Decherf 97444566db Update EntryControllerTest to handle origin_url
Set an origin_url in testEditUpdate
Test origin_url deletion in testEditRemoveOriginUrl

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2017-11-19 15:02:11 +01:00
Kevin Decherf 00f2368f7a Add some tests for OriginUrl in EntryRestController
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2017-11-19 15:02:11 +01:00
Kevin Decherf e50e45d6fa Twig: add removeSchemeAndWww filter
This twig filter removes scheme (only http and https are supported) and
pass the result to removeWww filter to also remove 'www.' at the
beginning of an url.

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2017-11-19 15:02:11 +01:00
adev cc79712738 Fix phpcs 2017-11-11 23:55:13 +01:00
adev d81bf605af Fix tests 2017-11-11 23:37:57 +01:00
Jérémy Benoist 91f9bacf73 Merge pull request #3362 from sviande/fix_3361_api_warning
Fix #3361 check type for tags in entry repository
2017-10-18 11:16:50 +02:00
Nicolas Hart 9ca069a6fe Replace kernel.root_dir by kernel.project_dir
kernel.root_dir and Kernel::getRootDir() are deprecated since Symfony 3.3.
See https://symfony.com/blog/new-in-symfony-3-3-a-simpler-way-to-get-the-project-root-directory and https://github.com/symfony/symfony/blob/3.3/UPGRADE-3.3.md#httpkernel for more information.
2017-10-14 00:32:56 +02:00
Jeremy Benoist bb86dc6486 CS 2017-10-12 07:38:27 +02:00
Sébastien Viande d03b72f405 Fix #3361 add test 2017-10-12 07:38:27 +02:00
Jeremy Benoist f645d371ce
Fix MondeDiplo https url 2017-10-10 10:20:57 +02:00
Jeremy Benoist f40c88eb1f
Jump to Symfony 3.3 & update others deps
Also update tests urls
2017-10-09 16:45:12 +02:00
Jeremy Benoist 33264c2d02
Fix tests 2017-09-06 22:49:16 +02:00
Jeremy Benoist 7c04b7396a
Multiple tag search was broken from API
First, the setParameter() were done on the same parameter which in fact
just duplicated the condition in the SQL query (like `where t.label =
'test' and t.label = 'test'`.

Changed the parameter doesn't help because the query was then wrong.

Changing the way to match associated tags for an entry and it worked.
2017-09-06 22:49:15 +02:00
Jérémy Benoist 3af5d41759 Merge pull request #3139 from Kdecherf/2502-tag-case
Ignore tag's case
2017-09-03 20:25:15 +02:00
Jeremy Benoist e437ad810b Fix tests
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2017-08-27 16:51:23 +02:00
Kevin Decherf 7036d91fe7 Tag: render tags case-insensitive by storing them in lowercase
Fixes #2502

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2017-08-27 16:51:23 +02:00
François D a991c46eed Set a starred_at field when an entry is starred.
This date is used to sort starred entries.

Can not use Entry::timestamps method otherwise starred_at will be updated each time entry is updated.
Add an updateStar method into Entry class
A migration script has been added in order to set starred_at field.
2017-08-25 21:19:47 +02:00
Nicolas Hart 511f1ce1e8 Add reload entry command 2017-08-21 10:45:48 +02:00
Nicolas Hart f7a4b44136 add search argument and limit option to list users command 2017-07-31 23:20:41 +02:00
Nicolas Hart af31cfed76 Add list user command 2017-07-30 22:04:29 +02:00
Nicolas Hart e1b33efb3d Better rendering for all core commands 2017-07-29 11:09:02 +02:00
Jeremy Benoist ff9f89fd23
Add a test for updatePublishedAt
To avoid error when a content is re-submitted and it previously add a
published date.

Also, fix the `testPostSameEntry`
2017-07-24 17:07:47 +02:00
Jeremy Benoist c6c45673af
Put the final URL in data test 2017-07-24 11:13:53 +02:00
Jeremy Benoist 2e5b2fa808
Revert client_credentials grant types 2017-07-08 19:28:12 +02:00
Jeremy Benoist c18a2476b6
CS 2017-07-03 13:56:39 +02:00
Jeremy Benoist d0ec2ddd23
Fix validateAndSetPreviewPicture
Which wasn't covered by a test!
2017-07-03 13:45:04 +02:00
Jeremy Benoist a05b61159e
Fix PATCH method
The PATCH method for the entry should only update what user sent to us and not the whole entry as it was before.
Also, sending tags when patching an entry will now remove all current tags & assocatied new ones.
2017-07-03 13:45:04 +02:00
Jeremy Benoist 38520658ad
Fix tests 2017-07-03 07:30:54 +02:00
Jeremy Benoist f808b01692
Add a real configuration for CS-Fixer 2017-07-01 09:52:38 +02:00
Jeremy Benoist 39ffaba323
Return null instead of false 2017-06-28 08:15:06 +02:00
Jeremy Benoist 18696f77fd
Avoid BC on exists endpoint 2017-06-23 08:30:23 +02:00
Nicolas Lœuillet d0702f9fbd Merge pull request #3227 from wallabag/oauth-client-credentials
Add client_credentials oAuth2 auth method
2017-06-22 10:00:23 +02:00
Jeremy Benoist 11b8695663
Fix tests 2017-06-21 11:44:35 +02:00
Jeremy Benoist 18c38dffc6
Add RSS tags feeds 2017-06-21 11:44:35 +02:00
Jérémy Benoist 80784b782b Merge pull request #2683 from wallabag/credentials-in-db
Store credentials in DB
2017-06-20 16:40:48 +02:00
Thomas Citharel bead8b42da
Fix reviews
Encrypt username too
Redirect to list after saving credentials
Fix typos

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2017-06-20 16:03:39 +02:00
Jeremy Benoist 906424c1b6
Crypt site credential password 2017-06-20 16:03:35 +02:00
Jeremy Benoist 9de9f1e5ce
Add a live test for restricted article
It is not aimed to test if we can get the full article (since we aren't using real login/password)
but mostly to test the full work (with authentication, etc.)

Do not clean fixtured to avoid SQLite to re-use id for entry tag relation 😓
2017-06-20 16:03:20 +02:00
Jeremy Benoist b8427f22f0
Add menu access to site credentials CRUD 2017-06-20 16:03:14 +02:00
Thomas Citharel caa0b1765b Add client_credentials oAuth2 auth method
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2017-06-14 17:30:12 +02:00
Thomas Citharel 41d45c6122 Fix empty language and preview pics 2017-06-12 16:46:33 +02:00
Jeremy Benoist 1112e54772
Add public filter/field in the API
Listing entries can now be filtered by “public”.
Creating or patching an entry can now set is to public or remove the public.
Entry response now include “is_public” boolean field
2017-06-10 15:31:57 +02:00
Jeremy Benoist e8911f7c09
Add isPublic filter on entries 2017-06-10 15:00:52 +02:00
Jérémy Benoist 679aaf0836 Merge pull request #3173 from wallabag/domain-name-param
remove craueconfig domain name setting and add a proper one in parame…
2017-06-10 11:36:03 +02:00
Jérémy Benoist a899399989 Merge pull request #3192 from wallabag/validate-content-fields
Validate language & preview picture fields
2017-06-09 13:51:26 +02:00
Jeremy Benoist 1f7018e1fe
Cleanup test
Looks like we didn't ALWAYS get a value for language from 20minutes.
Ahem.
2017-06-09 11:52:41 +02:00
Jeremy Benoist 80e49ba7b0
Convert - to _ in language
Mostly to increase language supports
2017-06-09 11:42:09 +02:00
Jeremy Benoist 42f3bb2c63
Use Locale instead of Language 2017-06-09 11:28:04 +02:00
Jeremy Benoist 1a94252831
Promote https 2017-06-09 10:07:27 +02:00
Jeremy Benoist f81a34e379
Use a listener to catch auth failure 2017-06-09 09:45:43 +02:00
Jeremy Benoist e9056dd96f
Fix test
de_DE is not valid language.
Zataz doesn’t send a valid language in their content (they use `fr-FR`).
2017-06-08 22:51:30 +02:00
Jeremy Benoist 0d349ea670
Validate language & preview picture fields
Instead of saving the value of each field right into the content without any validation, it seems better to validate them.
This might sounds obvious now we say that.
2017-06-08 21:51:46 +02:00
Jeremy Benoist 80f4d85ac9
Review 2017-06-08 19:15:33 +02:00
Jeremy Benoist a8d3fe50df
Add ability to name the client 2017-06-08 14:25:44 +02:00
Jeremy Benoist eb570e49c8
CS 2017-06-07 23:31:14 +02:00
Jeremy Benoist 0c00e52516
Create a client when creating a user using the api
While creating a new user using the API, we also create a new client for the current user.
So the app which just create the user can use its newly created client to configure the app.

That new client is only return after creating the user.
When calling the endpoint /api/user to get user information, the new client information won’t be return.
2017-06-07 23:23:28 +02:00
Nicolas Lœuillet 7bb3aa3177 Merge pull request #3093 from aaa2000/annotation-error-on-save
Displays an error with an annotation with a too long quote
2017-06-07 16:30:27 +02:00
Jérémy Benoist c0d756f67d Merge pull request #3181 from wallabag/api-content-patch
Add ability to patch an entry with more fields
2017-06-07 15:40:59 +02:00
Jérémy Benoist 4e4a5b534f Merge pull request #3184 from wallabag/better-way-image-extension
Use an alternative way to detect images
2017-06-07 13:41:25 +02:00
Jérémy Benoist a3f16a5685 Merge pull request #3179 from wallabag/show-user-command
Show user command
2017-06-07 09:40:56 +02:00
Jeremy Benoist 577c0b6dd8
Use an alternative way to detect image
When parsing content to retrieve images to save locally, we only check for the content-type of the image response.
In some case, that value is empty.
Now we’re also checking for the first few bytes of the content as an alternative to detect if it’s an image wallabag can handle.
We might get higher image supports using that alternative method.
2017-06-05 22:54:02 +02:00
Thomas Citharel 0d8ecb82a3 Fix review
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2017-06-04 17:57:40 +02:00
adev 2c3e148b00 Displays an error with an annotation with a too long quote
Fix #2762
2017-06-04 11:38:29 +02:00
Jeremy Benoist 645291e8fe
Add ability to patch an entry with more fields
Like when we create an entry, we can now patch an entry with new fields:
- content
- language
- preview_picture
- published_at
- authors
2017-06-02 20:52:49 +02:00
Jeremy Benoist a1e6187406
Return 201 on user creation 2017-06-02 20:03:25 +02:00
Thomas Citharel d143fa243d Add show user command
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2017-06-02 16:53:03 +02:00
Jeremy Benoist 426bb453d2
API user creation behing a toggle
I've added a toggle feature (in internal settings) so that user api creation can be disabled while form registration still can be enabled.
Also, the /api/user endpoint shouldn't require authentication. Even if we check the authentication when sending a GET request, to retrieve current user information.

I've moved all the internal settings definition to config to avoid duplicated place to define them.
I don't know why we didn't did that earlier.
2017-06-02 11:32:38 +02:00
Jérémy Benoist a687c8d915 Merge pull request #2708 from jcharaoui/import-disablecontentupdate
Import disableContentUpdate
2017-06-02 11:26:37 +02:00
Jeremy Benoist fcad69a427
Replace images with &
Images with `&` in the path weren’t well replaced because they might be with `&amp;` in the html instead.

Replacing `&` with `&amp;` fix the problem.
2017-06-01 22:50:33 +02:00
Jeremy Benoist 6acadf8e98
Rewrote code & fix tests 2017-06-01 11:31:45 +02:00
Jeremy Benoist d5c2cc54b5
Fix tests 2017-06-01 09:49:15 +02:00
Jerome Charaoui 704803e182
Replace Wallabag v1 error strings with v2 strings 2017-06-01 09:48:14 +02:00
Jerome Charaoui d0e9b3d640
Add disableContentUpdate import option
This commit also decouples the "import" and "update" functions inside
ContentProxy. If a content array is available, it must be passed to the
new importEntry method.
2017-06-01 09:48:14 +02:00
Jerome Charaoui 7aba665e48
Avoid returning objects passed by reference.
Objects are always passed by reference, so it doesn't make sense to
return an object which is passed by reference as it will always be the
same object. This change makes the code a bit more readable.
2017-06-01 09:43:01 +02:00
Jérémy Benoist 2a0eec07a5 Merge pull request #3137 from aaa2000/isolated-tests
Isolated tests
2017-06-01 07:58:17 +02:00
adev 7ab5eb9508 Isolated tests
Use https://github.com/dmaicher/doctrine-test-bundle to have test isolation.
2017-05-31 16:03:54 +02:00
Jeremy Benoist 695af58857
Fix tests following rebase 2017-05-31 14:00:15 +02:00
Jeremy Benoist 38a04dee34
CS 2017-05-31 14:00:15 +02:00
Jeremy Benoist f0378b4d7c
Forced date can now be a timestamp too
Add adding more tests for forced content
2017-05-31 14:00:15 +02:00
Jeremy Benoist 0d6cfb884c
Remove htmlawed and use graby instead
Instead of using htmlawed (which is already used in graby) use graby directly (which require some refacto on graby side).
Still needs some tests.
2017-05-31 14:00:15 +02:00
Jeremy Benoist cf05a1ae34
Reduce imported entries
Down from 2.2 minutes to 1.39 minutes
2017-05-31 14:00:15 +02:00
Jeremy Benoist 74a75f7d43
Use graby ContentExtractor to clean html
It might be better to re-use some graby functionalities to clean html instead of building a new system.
2017-05-31 14:00:15 +02:00
Jeremy Benoist fb436e8ca0
Add support for authors 2017-05-31 13:59:45 +02:00
Jeremy Benoist e668a8124c
Allow other fields to be send using API
Entry API can now have these new fields:
- content
- language
- preview_picture
- published_at

Re-use the ContentProxy to be able to do the same using the web UI (in the future).
htmLawed is used to clean stuff from content, I hope it’ll be enough to avoid security breach.

Lower content validation when we want to update an entry with content already defined. Before, language & content_type were required. If there weren’t provided, we re-fetched the content using graby. I think these fields aren’t required for an entry to be created. So I removed them.
Which means some import from the v1 export won’t be re-fetched since they provide content, url & title.

Also, remove liberation link from Readability import to avoid overlaping import (from wallabag v1, which had the same link)
2017-05-31 13:59:45 +02:00
Nicolas Lœuillet 4423b88c5b Merge pull request #3168 from wallabag/instapaper-tags-import
Add support for tag in Instapaper import
2017-05-31 12:32:09 +02:00
Nicolas Lœuillet d61fd8be4f Merge pull request #3138 from Kdecherf/2835-tags
Ignore ActionMarkAsRead when removing tag from entry
2017-05-31 11:48:42 +02:00
Nicolas Lœuillet 3f8578ded3 Merge pull request #3161 from wallabag/scrutinizer-2.3
Fix some Scrutinizer issues
2017-05-31 11:46:41 +02:00
Jeremy Benoist 31485bddb9
Ensure retrieved data are fresh 2017-05-31 11:11:02 +02:00
Jeremy Benoist bad7df8c00
CS & improve tags assertions 2017-05-31 10:38:15 +02:00
Jeremy Benoist 7a8ed3cee1
Add support for tag in Instapaper import 2017-05-31 10:38:00 +02:00
Nicolas Lœuillet 7aa5607f29 Merge pull request #3143 from wallabag/fix-wllbg2-import
Fixed is_starred for wallabag v2 import
2017-05-31 09:08:34 +02:00
Kevin Decherf 5dbf3f2326 TagController: ignore ActionMarkAsRead when removing tag from entry
Fixes #2835

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2017-05-31 00:36:46 +02:00
Jeremy Benoist 047fdc767a
Add tests 2017-05-30 20:27:44 +02:00
Jérémy Benoist 2150576d86 Merge pull request #3065 from wallabag/api-creation-endpoint
Register through API
2017-05-30 15:26:11 +02:00
Jeremy Benoist 26650fdbf8
Use a better way to set input for command
Actually use the correct to way handle that

http://symfony.com/doc/current/components/console/helpers/questionhelper.html#testing-a-command-that-expects-input
2017-05-30 12:47:28 +02:00
Jeremy Benoist d181bd7285
Merge remote-tracking branch 'origin/master' into 2.3 2017-05-30 09:59:06 +02:00
Jeremy Benoist fe6461e4aa
Avoid side effect on other tests 2017-05-30 09:57:57 +02:00
Jeremy Benoist d069bff4f6
Remove unknown validation_groups
The Profile validation_groups does not exist and then for validation to be skipped (like password length)
2017-05-30 08:04:11 +02:00
Jeremy Benoist 5709ecb368
Re-use `NewUserType` to validate registration
The only ugly things is how we handle error by generating the view and then parse the content to retrieve all errors…

Fix exposition fields in User entity
2017-05-30 07:56:01 +02:00
Thomas Citharel de8d2a9005 CS
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2017-05-28 12:59:48 +02:00
Thomas Citharel 6bc6fb1f60 Move Tags assigner to a separate file
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2017-05-27 22:08:14 +02:00
Damien Cassou ac1509a66b
Fix documentation URL for "How can I help to fix that?" 2017-05-24 12:57:46 +02:00