Commit Graph

4984 Commits

Author SHA1 Message Date
John Molakvoæ c05e8acdb1
Merge pull request #12019 from nextcloud/icons-svg-api-fixes
Move svg api endpoint
2018-10-29 15:45:45 +01:00
Julius Härtl 34a71f57fc
Fix tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-29 13:06:55 +01:00
Daniel Calviño Sánchez 565556b277 Move acceptance tests that crash the PHP built-in server to Apache
The PHP built-in server can crash when certain actions are performed in
Nextcloud (but although the crash is triggered by Nextcloud it does not
seem to be a Nextcloud bug), which can lead to failures in the
acceptance tests that would have otherwise passed.

A crash of the PHP built-in server during an acceptance test can be
identified by the message "sh: 1: kill: No such process" in the
acceptance tests output; as the PHP built-in server crashed its process
does no longer exist when it is tried to be killed when the scenario
ends.

Although the crash has been observed in other tests too it is more
prevalent in the tests for tags and the theming app. In order to
reduce the false positives those tests are now run on Apache instead of
on the PHP built-in sever. However, the rest of tests are still run on
the PHP built-in server due to its lower resource consumption.

In order to run a feature or just a scenario using Apache it has to be
tagged with "@apache"; features or scenarios without that tag (the
default) will run on the PHP built-in server instead.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-10-29 12:38:42 +01:00
Daniel Calviño Sánchez 34f397fd22 Link the default Apache directory to the Nextcloud server in all runners
In order to run the acceptance tests in Apache "/var/www/html" has to be
linked to the root directory of the Nextcloud server. Before this was
automatically done when launching the acceptance tests through
"./run.sh", but an explicit command was needed when run in Drone. Now
the linking was moved from "run.sh" to "run-local.sh", so it is
automatically done when run through "./run.sh" and in Drone, including
when running the tests for an app instead of for the server.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-10-29 12:38:42 +01:00
Daniel Calviño Sánchez 95dc2ad13c Extract acceptance tests for tags to their own feature file
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-10-29 08:40:05 +01:00
Daniel Calviño Sánchez f844799d9b Move the browser window of an actor to the foreground when acting as him
Each time a new actor appears in a scenario the browser window of the
new actor is put in front of the browser windows of the previous actors.
Before, when acting again as a previous actor his browser window stayed
in the background; in most cases everything worked fine even if the
window was in the background, but due to a bug in the Firefox driver of
Selenium and/or maybe in Firefox itself when the window was in the
background it was not possible to set the value of an input field that
had a range selected.

Now, when acting again as a previous actor his browser window is brought
to the foreground. This prevents the bug from manifesting, but also
reflects better how a user would interact with the browser in real life.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-10-26 11:07:13 +02:00
Daniel Kesselberg 5cf8f4a407
Update logic for forwardedForHeadersWorking
As discussed in https://github.com/nextcloud/server/issues/11594 when discovering if
x-forwarded-for is working properly its not possible to use getRemoteAddr because
the "client ip" is returned. For this check the ip of the last hop would be required.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2018-10-25 23:01:37 +02:00
Julius Härtl d21ded67a7
Keep list of icons in a separate file for use in the accessibility app
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-25 12:16:10 +02:00
Bjoern Schiessle d76a87f3b0
skip already decrypted files on decrypt all command
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2018-10-24 16:53:39 +02:00
Morris Jobke df6e9109c8
Merge pull request #11396 from nextcloud/wellknown-webfinger
adding .well-known/webfinger
2018-10-24 14:51:15 +02:00
Morris Jobke e0f9257be9
Merge pull request #11847 from iPaat/Fix/DeleteCookiesThroughClearSiteData
Remove cookies from Clear-Site-Data Header
2018-10-23 17:04:45 +02:00
Morris Jobke 39338aaa67
Merge pull request #11914 from nextcloud/csp/report-uri
Add report-uri to CSP
2018-10-23 16:42:24 +02:00
Morris Jobke 9b092fd4bd
Merge pull request #11967 from nextcloud/fix-opening-a-section-again-in-the-files-app
Fix opening a section again in the Files app
2018-10-23 15:29:55 +02:00
Morris Jobke 171fe69db7
Merge pull request #11932 from nextcloud/font-nunito
Change typeface to Nunito
2018-10-23 15:14:10 +02:00
John Molakvoæ (skjnldsv) 782927a05f
fixup! Fix comment and cap-height
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2018-10-23 14:30:23 +02:00
John Molakvoæ (skjnldsv) 1fb885638e
Fix comment and cap-height
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2018-10-23 14:22:55 +02:00
Jan-Christoph Borchardt 354b72b9d3
Use correct typeface for avatar generator
Signed-off-by: Jan-Christoph Borchardt <hey@jancborchardt.net>
2018-10-23 13:13:35 +02:00
dependabot[bot] e2210296b7
Update polyserve requirement
Updates the requirements on [polyserve](https://github.com/Polymer/tools) to permit the latest version.
- [Release notes](https://github.com/Polymer/tools/releases)
- [Commits](https://github.com/Polymer/tools/commits/polyserve@0.27.13)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-10-22 18:35:41 +00:00
Daniel Calviño Sánchez 779000eb13 Add acceptance tests for opening a section in the Files app
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-10-21 20:21:59 +02:00
Roeland Jago Douma 579822b6a5
Add report-uri to CSP
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-10-21 13:38:32 +02:00
Roeland Jago Douma 9d36cc7256
Fix js unit tests
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-10-19 15:54:22 +02:00
Christoph Wurst a1ea504edf
Merge pull request #11711 from nextcloud/feature/backgroundjobs_ocp
Add proper backgroundjobs to OCP
2018-10-19 07:40:35 +02:00
Arthur Schiwon 8e4ae23c48
Do not try to contact lookup server without internet connection or URL
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2018-10-18 17:49:28 +02:00
Roeland Jago Douma 2849f24154
Merge pull request #11839 from nextcloud/csp/files_drop
Move files_drop to compiled handlebars
2018-10-16 12:16:31 +02:00
Morris Jobke ad66b0f9ab
Merge pull request #11830 from nextcloud/bugfix/9326/make_sure_usermanager_getByEmail_only_returns_IUser
filter null values for UserManager::getByEmail
2018-10-16 09:14:25 +02:00
Roeland Jago Douma 6c532576ee
fixup! Move files_drop to compiled handlebars
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-10-16 09:02:48 +02:00
Morris Jobke afaee648dd
Merge pull request #11358 from Zulan/fix-welcome-l10n
Fix welcome l10n
2018-10-16 09:01:59 +02:00
zulan cf266ee004 Get l10n within NewUserMailHelper to ensure it always uses the new user's language.
Some related tests had to be changed because they relied on internals, see also from the PHPUnit documentation:
"Exercise caution when using [the at] matcher as it can lead to brittle tests which are too closely tied to specific implementation details."

Signed-off-by: Zulan <git@zulan.net>
2018-10-15 19:01:46 +02:00
Patrick Conrad 1806baaeaf
Remove cookies from Clear-Site-Data Header
In 2f87fb6b45 this header was introduced. The referenced documentation says:

> When delivered with a response from https://example.com/clear, the following header will cause cookies associated with the origin https://example.com to be cleared, as well as cookies on any origin in the same registered domain (e.g. https://www.example.com/ and https://more.subdomains.example.com/).

This also applies if `https://nextcloud.example.com/` sends the `Clear-Site-Data: "cookies"` header.
This is not the behavior we want at this point!

So I removed the deletion of cookies from the header. This has no effect on the logout process as this header is supported only recently and the logout works in old browsers as well.

Signed-off-by: Patrick Conrad <conrad@iza.org>
2018-10-15 14:46:06 +02:00
Julius Härtl b9a87a69cf
Use IAccountManager constants
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-15 13:30:31 +02:00
Julius Härtl 9381e681a9
Add tests for new account api classes
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-15 13:30:31 +02:00
Georg Ehrke 2db26d87c4
filter null values for UserManager::getByEmail
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2018-10-15 13:27:58 +02:00
Björn Schießle 1ce8672276
Merge pull request #11714 from nextcloud/lookupserver-and-global-scale
always query the lookup server in a global scale setup
2018-10-15 12:14:04 +02:00
Morris Jobke 8177fdb0f6
Merge pull request #11765 from nextcloud/feature/mandatory-2fa-for-groups
Mandatory 2FA for groups
2018-10-15 10:58:05 +02:00
Morris Jobke e36d4a990d
Merge pull request #10439 from eugulixes/improve-encrypt-all-and-decrypt-all-commands
Check if TTY is invalid in encryption:encrypt-all and encryption:decrypt-all
2018-10-15 09:15:58 +02:00
Christoph Wurst 83e994c11f
Make it possible to enforce mandatory 2FA for groups
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2018-10-15 08:22:52 +02:00
Roeland Jago Douma 5b61ef9213
Disallow unsafe-eval by default
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-10-14 20:45:34 +02:00
Evgeny Golyshev ec2f02f4a0 Check if TTY is invalid in encryption:encrypt-all and encryption:decrypt-all
Signed-off-by: Evgeny Golyshev <eugulixes@gmail.com>
2018-10-14 15:06:14 +03:00
Bjoern Schiessle 1b0b159685
add more tests
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2018-10-12 16:11:48 +02:00
Joas Schilling 16817f3743
Make activity events strict
Signed-off-by: Joas Schilling <coding@schilljs.com>
2018-10-12 12:12:12 +02:00
Roeland Jago Douma 2a690db553
Merge pull request #11675 from nextcloud/feature/enforce-2fa-admin-settings
Add admin interface to enforce 2FA
2018-10-10 20:40:30 +02:00
Bjoern Schiessle fd5fc24da2
some small fixes and improvements
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2018-10-10 16:07:01 +02:00
Christoph Wurst 67c3730fbb
Add admin interface to enforce 2FA
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2018-10-10 14:34:52 +02:00
Roeland Jago Douma d5bf2c4523
Move normalizePath to regexes instead of looping
This is IMO a bit more readable and it seems to make the code faster.
Tested it on the company instance where there are over 3k calls to this
function. It shaves off around 10ms.

The advantage here is that the pattern gets optimized by php itsel and
cached.
Also looking for all patterns at the same time and especially no longer
looping for /./ patterns should save time.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-10-10 13:23:59 +02:00
Maxence Lange 6642efa7f4 adding .well-known/webfinger
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2018-10-10 13:01:23 +02:00
Bjoern Schiessle 9e76d4049a
adjust tests
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2018-10-09 18:31:33 +02:00
Roeland Jago Douma c97b4274cc
Add function to generate urls for OCS routes
fixes #11617

The OCS routes are only absolute for now as they are often exposed to
the outside anyway and are on a different endpoint than index.php in
anyway.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-10-09 15:41:50 +02:00
Roeland Jago Douma 8493f49211
fixup! fixup! Add backgroundjobs to OCP
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-10-09 15:25:56 +02:00
Christoph Wurst 3f2cd13beb
Remove HHVM check
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2018-10-09 10:12:15 +02:00
Morris Jobke db345e4c6d
Deprecate unused, private OC_Helper::linkToPublic
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-10-08 18:29:52 +02:00
Morris Jobke fe2a600823
Merge pull request #10839 from nextcloud/bugfix/10212/use_class_implementation
adjust Calendar resource / room interfaces to use class implementation
2018-10-08 17:00:50 +02:00
Morris Jobke bae3ba3b25
Merge pull request #11671 from nextcloud/refactor/rename-admin-security-section
Rename admin security section
2018-10-08 13:57:38 +02:00
Christoph Wurst b1b43aa7bc
Fix reference to template in tests
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2018-10-08 11:27:22 +02:00
Morris Jobke 7971ba5cc6
Merge pull request #10898 from nextcloud/feature/10684/default-logo-color-theme-colors
Switches the default logo color depending on the primary color
2018-10-08 10:33:22 +02:00
Christoph Wurst 5d2fdfe0b5
Rename admin security section
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2018-10-08 10:31:51 +02:00
Georg Ehrke 970242b6ca
RoomManager/ResourceManager: Inject IServerContainer instead of using OC Server
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2018-10-08 01:50:17 +02:00
Georg Ehrke 1c6f666bbf
adjust Calendar resource / room interfaces to use class implementation
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2018-10-08 01:25:20 +02:00
Roeland Jago Douma 60a34179c9
Remove deprecated publishActivity function
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-10-05 12:55:45 +02:00
Roeland Jago Douma b574d1c814
Move files_versions to compiled handlebars templates
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-10-04 09:53:45 +02:00
Roeland Jago Douma d281f2625d
Move Comments to compiled handlebars
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-10-04 09:53:44 +02:00
Roeland Jago Douma 78273cb1e6
Add an endppoint for clients to request an app password
Now that we allow enforcing 2 factor auth it make sense if we also allow
and endpoint where the clients can in the background fetch an
apppassword if they were configured before the login flow was present.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-10-03 19:05:20 +02:00
Morris Jobke 8ede3f6346
Merge pull request #11446 from nextcloud/bugfix/10678/pretty-urls-dont-work
Allow overwrite.cli.url without trailing slash
2018-10-02 23:39:30 +02:00
Morris Jobke 6b730b4c47
Merge pull request #11390 from nextcloud/feature/11043/apptoken_v3
Apptoken v3: imrpove token handling on external password change
2018-10-02 21:45:10 +02:00
Roeland Jago Douma 19f84f7b54
Add tests
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-10-02 19:50:54 +02:00
Roeland Jago Douma 00e99af586
Mark token as invalid if the password doesn't match
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-10-02 19:50:44 +02:00
Morris Jobke 7005ff420e
Fix tests
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-10-02 18:37:57 +02:00
Michael Weimann a45ec3d324
Refactors the scss svg functions
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2018-10-02 08:37:55 +02:00
Michael Weimann d855c38e07
Moves the logo files to logo
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2018-10-02 08:37:54 +02:00
Morris Jobke 6080d9d80a
Merge pull request #11462 from nextcloud/feature/11380/2fa_backup_code_generation
Add notification to generate 2FA backup codes
2018-10-01 18:13:23 +02:00
Roeland Jago Douma 956fe1b867
Generate backups code notification if not enable but 2fa is
Generate a notification to generate backup codes if you enable an other
2FA provider but backup codes are not yet generated.

* Add event listner
* Insert background job
* Background job tests and emits notification every 2 weeks
* If the backup codes are generated the next run will remove the job

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-10-01 15:35:25 +02:00
Morris Jobke 5394d4400f
Merge pull request #11501 from nextcloud/coverage_no_composer
Do not cover composer folders for code coverage
2018-10-01 14:53:44 +02:00
Roeland Jago Douma 2c8cd69b6f
Do not cover composer folders for code coverage
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-10-01 11:47:11 +02:00
Jan-Christoph Borchardt 9b8e884b19
Change wording of 'Copy URL' to more understandable 'Copy link'
Signed-off-by: Jan-Christoph Borchardt <hey@jancborchardt.net>
2018-10-01 11:02:12 +02:00
Daniel Kesselberg 9dae927b0c Add more test cases
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2018-09-30 12:24:38 +02:00
Christoph Wurst 259c0ce11d
Add mandatory 2FA service/class
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2018-09-30 11:47:29 +02:00
Daniel Kesselberg c275beeceb
Allow url without / for overwrite.cli.url
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2018-09-28 22:32:19 +02:00
John Molakvoæ (skjnldsv) f5f31e221c
Fix class selector for acceptance tests
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2018-09-28 08:20:10 +02:00
Christoph Wurst f71ffc73db
Remove unused constructor argument
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2018-09-27 09:44:21 +02:00
Christoph Wurst 0259792614
Reduce settings manager complexity by loading sections via DI
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2018-09-27 09:44:21 +02:00
Roeland Jago Douma 1fecea6c08
Also test enabling of the Antivirus App for files
Since there is no calendar release for 15 yet we should use an app that
we can quickly release for 15 as well.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-09-26 22:05:42 +02:00
blizzz ff55bcdad5
Merge pull request #11150 from nextcloud/feature/noid/unit-test-find-webroot
Extract logic for webroot into method and add test
2018-09-26 15:22:30 +02:00
Morris Jobke ee73f6c416
Merge pull request #11240 from nextcloud/feature/noid/consider-openssl-settings-from-config.php
Consider openssl settings from config.php
2018-09-25 18:04:20 +02:00
Christoph Wurst 7586b19e52
Only allow 2FA state changs if providers support the operation
Ref https://github.com/nextcloud/server/issues/11019.

Add `twofactorauth:cleanup` command

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2018-09-25 09:54:20 +02:00
Daniel Kesselberg 2440ee6b84
Add simple unit test for findLanguageFromLocale
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2018-09-23 20:12:00 +02:00
Daniel Calviño Sánchez bc84aa0269 Include empty directories in the default state of acceptance tests
Before each scenario of the acceptance tests is run the Nextcloud server
is reset to a default state. To do this the full directory of the
Nextcloud server is commited to a local Git repository and then reset to
that commit when needed.

Unfortunately, Git does not support including empty directories in a
commit. Due to this, when the default state was restored, it could
happen that the file cache listed an empty directory that did not exist
because it was not properly restored (for example,
"data/appdata_*/css/icons"), and that in turn could lead to an error
when the directory was used.

Currently the only way to force Git to include an empty directory is to
add a dummy file to the directory (so it will no longer be empty,
but that should not be a problem in the affected directories, even if
the dummy file is not included in the file cache); although Git FAQ
suggests using a ".gitignore" file a ".keep" file was used instead, as
it conveys better its purpose.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-09-18 10:23:35 +02:00
Daniel Kesselberg 6bdcec67ab
Add openssl to mock
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2018-09-16 12:38:08 +02:00
Daniel Kesselberg 3b7ac0c94d
Change visibility to private
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2018-09-13 12:24:06 +02:00
blizzz ef97ef72f6
Merge pull request #10743 from danielkesselberg/bugfix/noid/allow-password-reset-for-duplicate-email
Enable password reset for user with same email address when only one is active
2018-09-13 10:48:30 +02:00
Joas Schilling a1c969a170
Merge pull request #10840 from webfoersterei/refactor/5530-urandom-check
Refactor secure randomness check
2018-09-13 09:29:42 +02:00
Daniel Kesselberg fabd3e7ba1
Restore previous state for OC::$CLI
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2018-09-11 17:22:10 +02:00
Daniel Kesselberg 603a578a1c
Change return false to throw new
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2018-09-10 22:45:40 +02:00
Daniel Kesselberg 62c03beb1d
Extract logic for webroot into method and add test
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2018-09-10 22:33:35 +02:00
Christoph Wurst ff58732c0d
Add breadcrumb support to crash reporters
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2018-09-05 20:58:39 +02:00
Morris Jobke cf3f4888cc
Change password expiration time from 12h to 7d
We use the same logic for creating accounts without a password and there the 12h is a bit short. Users don't expect that the signup link needs to be clicked within 12h - 7d should be a more expected behavior.

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-08-31 13:31:03 +02:00
sualko 61370549f3 Allow same section class for multiple section types (fix #10764)
Signed-off-by: Klaus Herberth <klaus@jsxc.org>
2018-08-25 17:32:19 +02:00
Timo Förster 006e150c87 Change check if secure randomness is possible.
Signed-off-by: Timo Förster <tfoerster@webfoersterei.de>
2018-08-24 23:12:02 +02:00
Denis Mosolov a0b84bc0fc
Merge pull request #10334 from denismosolov/group-add
Add options to create/remove groups via occ
2018-08-24 13:46:16 +03:00
Morris Jobke bb2336f389
Merge pull request #10526 from steiny2k/HEICHEIF
Support HEIC for previews
2018-08-22 13:41:19 +02:00
Michael Weimann 2bab916c53
Adds license to files. Updates the branch.
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2018-08-20 20:46:23 +02:00
Morris Jobke 37869d9b2f
Merge pull request #10628 from nextcloud/feature/10154/app-directory-permission-check
Adds a permission check for app directories
2018-08-20 17:08:18 +02:00