Граф коммитов

14697 Коммитов

Автор SHA1 Сообщение Дата
Nazar Vovk
3476eccf5b Update minio-go dependency to 7.0.24 (#20006)
* Update minio-go dep to 7.0.24

* Bringing back some removed libraries

```release-note
NONE
```

Co-authored-by: Agniva De Sarker <agnivade@yahoo.co.in>
2022-04-16 10:38:32 +05:30
Kyriakos Z
b15cd9d29f MM-41565,MM-42473: fixes incorrect unread thread count (#19962)
* MM-41565,MM-42473: fixes incorrect unread thread count

The infamous "-1 unread threads" bug, was due to incorrectly counting
previous unread mentions and replies.

When we calculate the previous counts, we didn't take into account if
a thread was newly followed one or not. So when a user gets added to a
thread via a mention receives a WS event with the previous count values
calculated by subtracting "1" from the current count values.
In the result the webapp subtracts the previous values for the thread
from the total values of all threads for the user.

This is wrong since the user just followed the thread those previous values
should be 0. Which results into showing a negative value of unread
threads to the user.

This commit fixes this issue by zeroing the previous count values when
the user was not following the thread previously.

* Adds test, and addresses comments

* Changes test's description

* Removes unneeded assertion

* Empty commit just to re-build
2022-04-15 12:47:04 -04:00
Agniva De Sarker
ed3b3b57de MM-42877: Fix TestGetFileHeaders (#20002)
The issue seems to be that different distros
have different set of included mime types
built-in. Go looks into those directories
and it looks like our CI systems don't have
those files.

https://mattermost.atlassian.net/browse/MM-42877

```release-note
NONE
```
2022-04-15 14:49:48 +05:30
Kyriakos Z
79e36d4596 [MM-41185]: new API to mark thread as unread (#19951)
* [MM-41185]: new API to mark thread as unread

Until now we mark a thread as read/unread by sending a timestamp to the
server. This created some issues when marking a thread as unread from a
post. We needed to send the post.create_at - 1 as a timestamp but we
didn't do so consistently.

This commit adds a new API to set a thread as unread by post id.
Making all clients agnostic of the timestamp, and thus solving consistency issues.

Endpoint: /api/v4/users/{user_id}/teams/{team_id}/threads/{thread_id}/set_unread/{post_id}

* Updates client.go adding SetThreadUnreadByPostId

* Guards endpoint behind read channel permission

* Returns status 400 if post_id not belong in thread

* Root post as post_id should be permitted
2022-04-15 10:55:47 +03:00
Ibrahim Serdar Acikgoz
6ab7cd0f1a jobs: add config cleanup job (#19987) 2022-04-15 10:31:10 +03:00
Guillermo Vayá
282c2b94a9 Weblate 220408 (#19955)
* Translated using Weblate (German)

Currently translated at 100.0% (2306 of 2306 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/de/

Translated using Weblate (German)

Currently translated at 100.0% (2305 of 2305 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/de/

Translated using Weblate (German)

Currently translated at 100.0% (2304 of 2304 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/de/

Translated using Weblate (German)

Currently translated at 100.0% (2348 of 2348 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/de/

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/

* Translated using Weblate (Russian)

Currently translated at 100.0% (2302 of 2302 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/ru/

* Translated using Weblate (Japanese)

Currently translated at 100.0% (2302 of 2302 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/ja/

* Translated using Weblate (Dutch)

Currently translated at 99.9% (2301 of 2302 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/nl/

* Translated using Weblate (Polish)

Currently translated at 100.0% (2306 of 2306 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/pl/

Translated using Weblate (Polish)

Currently translated at 100.0% (2302 of 2302 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/pl/

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/

* Translated using Weblate (English (Australia))

Currently translated at 99.5% (2296 of 2306 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/en_AU/

Translated using Weblate (English (Australia))

Currently translated at 99.5% (2292 of 2302 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/en_AU/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (2302 of 2302 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/tr/

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/

* Translated using Weblate (French)

Currently translated at 93.7% (2161 of 2306 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/fr/

Co-authored-by: jprusch <rs@schaeferbarthold.de>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Alexey Napalkov <flynbit@gmail.com>
Co-authored-by: kaakaa <stooner.hoe@gmail.com>
Co-authored-by: Tom De Moor <tom@controlaltdieliet.be>
Co-authored-by: master7 <marcin.karkosz@rajska.info>
Co-authored-by: Matthew Williams <Matthew.Williams@outlook.com.au>
Co-authored-by: Kaya Zeren <kayazeren@gmail.com>
Co-authored-by: Nathanaël <contact@nathanaelhoun.fr>
Co-authored-by: = <=>
2022-04-15 10:19:10 +03:00
Agniva De Sarker
66a0c02c62 Cleaning up old migration commands (#20000)
```release-note
NONE
```
2022-04-15 11:59:59 +05:30
Ibrahim Serdar Acikgoz
92e647f1b9 config/database: update queries to improve reads/writes (#19975)
* config/database: update queries to improve reads/writes

* reflect review comments

* move tx initialization

* add comments and fix psql migration

* fix spelling

* refactor

* add more descriptive comment
2022-04-14 21:43:14 +03:00
Mylon Suren
99f02fe96e [MM-42742] Add top reactions endpoint (#19850) 2022-04-14 13:09:35 -04:00
Mattermod
a98975b00f Update latest version to 6.6.0 (#19990)
Automatic Merge
2022-04-14 18:27:05 +03:00
Michael Kochell
4a440bd158 Add .gitpod.yml to use mattermost-gitpod-config repo for Gitpod configuration (#19984) 2022-04-14 11:02:50 -04:00
Agniva De Sarker
c6dcf460b2 MM-43232: Racy test TestWebsocketRace (#19969)
We wait until the loop has exited to finish the test

https://mattermost.atlassian.net/browse/MM-43232

```release-note
NONE
```
2022-04-14 13:25:19 +05:30
Agniva De Sarker
6eb83812e1 Propagate the parse error for URLs (#19972)
During config validation, we would omit the actual error.
This makes debugging difficult.

```release-note
NONE
```
2022-04-13 22:20:46 +05:30
Mattermod
3cd3c7dc9a Update minor version to 6.7.0 (#19973)
Automatic Merge
2022-04-13 18:57:05 +03:00
Agniva De Sarker
289bb9fa6f MM-43341: Skip TestImportImportUser (#19970)
* MM-43341: Skip TestImportImportUser

https://mattermost.atlassian.net/browse/MM-43341

```release-note
NONE
```

* ignore lint

```release-note
NONE
```
2022-04-13 16:21:13 +03:00
Agniva De Sarker
c0b2aae84e MM-43340: Fix racy test TestGraphQLChannelMembers (#19968)
We take a shallow copy of the team pointer before
we pass that to the other functions.

This is because the resolvers run in separate
goroutines.

https://mattermost.atlassian.net/browse/MM-43340

```release-note
NONE
```
2022-04-13 18:50:33 +05:30
Nathaniel Allred
1198191a1c fix makefile mock generator typos (#19963)
* fix makefile mock generator typos
* rerun mocks
2022-04-13 08:05:57 -05:00
Pablo Andrés Vélez Vidal
6881b12af9 MM-39565 - remove top option ab testing (#19966)
Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>
2022-04-12 18:44:03 -05:00
Kevin Sicong Jiang
5cb31a114a MM-41909: Allow 1 char channel name (#19845)
* [ MM-41909 ] Allow 1 character channel names

Change minimal length to 1

* [ MM-41909 ] Fix localization string

* [ MM-41909 ] Modify condition to allow 1 char channel name

* [ MM-41909 ] fix formatting

* [MM-41909] Linting fix

* [MM-41909] Fix regex

* [MM-41909] Localization update

* [MM-41909] Attempt to fix test

Co-authored-by: Kevin Jiang <>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2022-04-12 11:17:15 -04:00
Agniva De Sarker
053e92a683 MM-43252: Skip TestPreparePostForClient (#19959)
https://mattermost.atlassian.net/browse/MM-43252

```release-note
NONE
```
2022-04-12 08:43:01 +05:30
Andrew Zigler
7794176ff2 Update link to Docker instructions (#19924)
* Update link to Docker instructions

* Update install links

* Update order for deploy guide description

* Improve install doc links

* Model install guide list after docs

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2022-04-11 14:52:13 -04:00
Michel Engelen
ca8aea9a06 [MM-41993]: fixed counting thread mentions in unread root post (#19874)
* removed appending the root post to the posts list

also changed `UpdateAt` to `CreateAt` in thread_store.go in accordance with kyriakos

* fixed failing test after latest change

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2022-04-11 12:43:14 -04:00
Agniva De Sarker
7f0d1cf0dd MM-43144: Add teams loader (#19960)
```release-note
NONE
```

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2022-04-11 20:51:33 +05:30
Agniva De Sarker
16b1cbd6e3 spelling (#19956)
* spelling: activated

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: attachments

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: categories

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: category

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: cellspacing

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: channel

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: compliance

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: constraint

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: counts

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: createat

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: deactivate

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: destination

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: exceeded

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: failed

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: foreign

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: hours

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: inactivity

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: inappropriate

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: initialization

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: initialized

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: management

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: mismatch

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: recipients

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: scheme

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: signature

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: subscription

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: suggestions

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: sync

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: telemetry

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: webhook

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Trigger CI
```release-note
NONE
```

Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2022-04-11 19:31:19 +05:30
Agniva De Sarker
d1de4857aa MM-43145: channels loader (#19957)
Add channels dataloader

https://mattermost.atlassian.net/browse/MM-43145

```release-note
NONE
```
2022-04-11 13:41:09 +05:30
Pablo Andrés Vélez Vidal
4b354685e9 MM-39058 - invite people to join team and channels (#19849)
* MM-39058-invite-to-team-from-add-channel

* fix tests by validating the memberInvite is not nil

* fix i18n texts

* fix lint problem

* fix translation lines

* fix the data structure

* modify api4-team_local file to match with the expected structure

* fix unit tests, fix translation tests

* remove go routine cause not necesary

* add unit test for invite to team and channel

* remove unnecessary validation

* allow both data structures, simple string array and object with memberInvite struct

* fix texts

* fix linter

* fix problems with graceful invites workflow

* handle error while parsing body

* fix unit tests

* take the address just once

* rename channels to channelIds

* fix unit tests

* add tests and fix local channels invite support

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>
2022-04-08 12:20:44 -05:00
mkraft
0e4b0b6939 MM-43082: Added new telemetry values for groups. (#19918) 2022-04-08 11:25:40 -04:00
Nathanaël
1418828443 Translated using Weblate (French)
Currently translated at 93.7% (2161 of 2306 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/fr/
2022-04-08 12:58:41 +02:00
Matthew Williams
07102ae86f Translated using Weblate (English (Australia))
Currently translated at 99.5% (2296 of 2306 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/en_AU/

Translated using Weblate (English (Australia))

Currently translated at 99.5% (2292 of 2302 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/en_AU/
2022-04-08 12:58:41 +02:00
master7
15f91a90cd Translated using Weblate (Polish)
Currently translated at 100.0% (2306 of 2306 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/pl/

Translated using Weblate (Polish)

Currently translated at 100.0% (2302 of 2302 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/pl/
2022-04-08 12:58:41 +02:00
jprusch
4da147a2f8 Translated using Weblate (German)
Currently translated at 100.0% (2306 of 2306 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/de/

Translated using Weblate (German)

Currently translated at 100.0% (2305 of 2305 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/de/

Translated using Weblate (German)

Currently translated at 100.0% (2304 of 2304 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/de/

Translated using Weblate (German)

Currently translated at 100.0% (2348 of 2348 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/de/
2022-04-08 12:58:41 +02:00
Agniva De Sarker
56dfcddff5 MM-43143: Dataloaders for roles (#19936)
We use a dataloader to optimize roles loading.

https://mattermost.atlassian.net/browse/MM-43143

```release-note
NONE
```

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2022-04-08 15:32:35 +05:30
Agniva De Sarker
ba2f116ed1 Bump tool dependencies (#19946)
```release-note
NONE
```
2022-04-08 12:16:38 +05:30
Ibrahim Serdar Acikgoz
54cb6d889f app: add channels wrapper (#19861) 2022-04-08 08:59:37 +03:00
Mylon Suren
6da1d90c4a [MM-38615] Permalink previews for DMs/GMs (#19765) 2022-04-07 17:32:18 -04:00
mkraft
ce2646de3e Disambiguates some units. (#19875)
* Disambiguates some units.

* Updates DB attribute.

* Updates some more error-prone units.

* Updates some tests with legible constants.

* Updates query for MySQL case sensitivity.

* Fixes more casing issues.

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2022-04-07 13:58:40 -04:00
Kyriakos Z
15a9a7ad2f MM-42725: exclude channels from teams user has left (#19939)
Automatic Merge
2022-04-07 20:27:05 +03:00
Agniva De Sarker
b6f18d3bb0 MM-42880: Fix TestRunServerSuccess (#19910)
https://mattermost.atlassian.net/browse/MM-42880

```release-note
NONE
```
2022-04-07 20:13:27 +05:30
Guillermo Vayá
302736d4a3 [MM-42889] fixed search term for archived channels (#19937)
* [MM-42889] fixed search term for archived channels

* remove logs

* remove logs x2

Co-authored-by: = <=>
2022-04-07 09:52:48 -04:00
Agniva De Sarker
f93d6d5687 MM-43137: Fix racy test TestUpdateActiveBotsSideEffect (#19935)
This was introduced with 2e027ae927.

We fix it by deep copying the user struct before returning from store.

https://mattermost.atlassian.net/browse/MM-43137

```release-note
NONE
```
2022-04-07 19:21:06 +05:30
Allan Guwatudde
762caaeb51 [MM-42522] - The reply-to email address in our Cloud trial emails is no-reply@mattermost.com instead of feedback-cloud@mattermost.com (#19899)
* [MM-42522] - The reply-to email address in our Cloud trial emails is no-reply@mattermost.com instead of feedback-cloud@mattermost.com

* feedback impl
2022-04-07 16:48:05 +03:00
Hosted Weblate
5b10b2791b Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/
2022-04-07 08:48:00 +02:00
Kaya Zeren
892de95905 Translated using Weblate (Turkish)
Currently translated at 100.0% (2302 of 2302 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/tr/
2022-04-07 08:48:00 +02:00
Matthew Williams
e2edc4b8c9 Translated using Weblate (English (Australia))
Currently translated at 99.5% (2292 of 2302 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/en_AU/
2022-04-07 08:48:00 +02:00
Hosted Weblate
3ff90489d8 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/
2022-04-07 08:48:00 +02:00
master7
f666591d38 Translated using Weblate (Polish)
Currently translated at 100.0% (2302 of 2302 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/pl/
2022-04-07 08:48:00 +02:00
Tom De Moor
c5c6bdfa76 Translated using Weblate (Dutch)
Currently translated at 99.9% (2301 of 2302 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/nl/
2022-04-07 08:48:00 +02:00
kaakaa
9c9c42fb92 Translated using Weblate (Japanese)
Currently translated at 100.0% (2302 of 2302 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/ja/
2022-04-07 08:48:00 +02:00
Alexey Napalkov
1acccc1b11 Translated using Weblate (Russian)
Currently translated at 100.0% (2302 of 2302 strings)

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/ru/
2022-04-07 08:48:00 +02:00
Hosted Weblate
820f2e5191 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/
2022-04-07 08:48:00 +02:00