Commit graph

240 commits

Author SHA1 Message Date
Johannes
7ec1ceb79a
Merge pull request #38413 from nextcloud/fix/38412/save-avatar-SAB
fix(SAB): Save avatar to SAB
2023-05-23 15:55:26 +02:00
Johannes Merkel
5983ef001d
fix(SAB): Save avatar to SAB
Signed-off-by: Johannes Merkel <mail@johannesgge.de>
2023-05-23 11:15:34 +02:00
Anna Larch
3c93ce9c25
fix(carddav): Check if SERVER variables are set before accessing them
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-05-23 10:58:29 +02:00
Thomas Citharel
13a3ebd4cc
feat(CardDAV): Add Sabre\DAV\IMoveTarget support to OCA\DAV\CardDAV\AddressBook
This allows to just UPDATE the card row instead of deleting it and reinsert it. It's very similar to https://github.com/nextcloud/server/pull/30120 for calendars.

As we need the addressbookid exposed, this introduces OCA\DAV\CardDAV\Card that extends Sabre's.

I chose specifically NOT to auto-inject LoggerInterface in Addressbook like in #30120 because the chain of DI is huge just for ONE simple call and it would break an existing dirty call (OCA\Contacts calling OCA\DAV) of ContactsManager in Contacts: https://github.com/nextcloud/contacts/pull/1722 (in SocialApiService), but this is debatable.

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-05-16 11:38:57 +02:00
Simon L
25dd264965
Merge pull request #37965 from nextcloud/fix/transactional-system-addressbook-sync
fix(dav): Run system address book create-if-not-exists in transaction
2023-05-16 11:33:09 +02:00
Christoph Wurst
5d038a2dc1
fix(carddav): Mark system address book as read-only
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-05-15 10:27:53 +02:00
Christoph Wurst
2cc672d26b
fix(dav): Run system address book create-if-not-exists in transaction
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-05-12 14:15:02 +02:00
Christoph Wurst
1381c4c157
feat(users): Store and load a user's manager
Co-Authored-By: hamza221 <hamzamahjoubi221@gmail.com>
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-05-12 13:56:48 +02:00
Anna Larch
5c2eb732f1 fix(carddav): expose system address book
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-05-11 18:59:30 +02:00
Anna Larch
bd80a1b2dd
feat(dav): store scopes for properties and filter locally scoped properties for federated address book sync
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-05-09 19:17:39 +02:00
Christoph Wurst
8c727f2285
feat(carddav): Map user's additional emails into the SAB card
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-05-04 15:03:01 +02:00
Johannes Merkel
ab76b086aa
enh(contacts): write profile prop and backend prop to system addressbook
Signed-off-by: Johannes Merkel <mail@johannesgge.de>
2023-05-02 16:31:11 +02:00
Thomas Citharel
ff3b69b21d refactor(dav): Since we're in a transaction, use QB properly when incrementing synctoken
Now that we're in a transaction, we can reuse the sync token's previous value without trouble, and rewrite the increment UPDATE query without dirty direct SQL.

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-04-17 16:08:44 +00:00
Thomas Citharel
c9a3129cb4 fix(CalDAV/CardDAV): put every method from Cal/CardDAV backends that does multiple DB calls in transactions
In a lot of methods we're doing read-after-writes (for instance calling
updateProperties after touching calendar objects).
There's also a lot of deleting methods that do stuff sequentially which
could cause trouble.
This should avoid this kind of issues.

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-04-17 16:08:44 +00:00
jld3103
7e58aa1a05
Fix DAV types
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2023-04-05 07:06:50 +02:00
jld3103
02f9c3a06f
Use implementations instead of interfaces for accessing private methods
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2023-03-30 12:33:46 +02:00
Joas Schilling
1a31ddb56d
Do not reuse query builder objects in DAV account deletion
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-02-01 21:49:34 +01:00
Christopher Ng
e6f4705920 Revert "Fix sync errors for duplicate cards with the same UID for different backends"
This reverts commit ddcee3dbab.

Signed-off-by: Christopher Ng <chrng8@gmail.com>
2023-01-13 02:11:09 +00:00
Anna Larch
ddcee3dbab Fix sync errors for duplicate cards with the same UID for different backends
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-01-05 12:19:51 +00:00
Côme Chilliet
cbbb0712db
Merge pull request #34807 from nextcloud/fix/compute-notification-parsed-subject
Compute notification parsed subject from rich subject when possible
2022-12-19 10:46:39 +01:00
Côme Chilliet
d9151ff35c Get rid of all useless calls to setParsedSubject now that setRichSubject is able to do it
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-11-29 14:36:29 +00:00
Carl Schwan
6828a3b28d Cleanup contactsinteraction
- Add more typing and use PHP 7.4 typed properties

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-11-25 11:46:18 +01:00
Anna Larch
9dd51601c6 Switch to DisplayNameCache for CardDAV
Signed-off-by: Anna Larch <anna@nextcloud.com>
2022-11-03 10:26:34 +01:00
Thomas Citharel
6f15873321 Add a background job to prune outdated sync tokens
We remove all outdated sync tokens, based on their auto-incremented ID.

By default we only keep the last 10 000, but this can be configurable.

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-27 20:12:13 +00:00
Christoph Wurst
19b7dad3dc Wrap address book creation write-read in a transaction
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2022-10-03 17:48:52 +02:00
blizzz
e714524267
Merge pull request #33104 from nextcloud/enhancement/add-logging-federation
Federation - add logging, update the server status if sync fails
2022-10-01 21:53:55 +02:00
blizzz
132f842f80
Merge pull request #33450 from sazanof/bug/base64-card-dav-search
Fix photo url generation (add URI type to VCard2Array)
2022-10-01 21:50:14 +02:00
Joas Schilling
d41841b4a7
Check address book URI length before creation
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-08-26 13:58:18 +02:00
Joas Schilling
71065f5fd5
Merge pull request #33615 from nextcloud/perf/noid/user-displayname-cache-for-activity-providers
Use user name cache in activity providers
2022-08-19 12:28:44 +02:00
Joas Schilling
eab5189abb
Fix carddav activities
The settings where combined last minute but at the same time the activities
where not adjusted to map an existing setting so the filter was not possible
to even limit it to the types that the activities had.

Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-08-19 10:50:45 +02:00
Joas Schilling
7e11778190
Use user name cache in activity providers
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-08-19 10:48:32 +02:00
Anna Larch
61b55c88da performance optimisation for carddav backend blob data read
Signed-off-by: Anna Larch <anna@nextcloud.com>
2022-08-15 20:47:58 +02:00
Mikhail Sazanov
458f1b0c03 Add URI type to VCard
Signed-off-by: Mikhail Sazanov <m@sazanof.ru>
2022-08-03 13:07:26 +03:00
Anna Larch
2988efeb7f Add logging to federation
Signed-off-by: Anna Larch <anna@nextcloud.com>
2022-07-27 15:00:38 +00:00
luz paz
d4637ef4d8 Fix typos in apps/dav subdirectory
Found via `codespell -q 3 -S l10n -L jus ./apps/dav`

Signed-off-by: luz paz <luzpaz@github.com>
2022-07-26 17:40:10 -04:00
blizzz
4ced3a4518
Merge pull request #32869 from nextcloud/dav-no-deleted-user-activities
Avoid calendar & addressbook activities being created on user being deleted
2022-07-23 00:01:30 +02:00
Carl Schwan
6114176b71 Cleanup CardDav SyncService
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-06-24 20:25:38 +02:00
Carl Schwan
a9cfa72d1c Summer cleanup of the federation app
- Use IEventDispatcher instead of deprecated symfony dispatcher
- Use LoggerInterface where possible
- Use php 7.4 properties
- Add type hinting where possible
- Move federation hooks to a seperate listener

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-06-24 15:39:52 +02:00
Carl Schwan
3598ec4028 Add typing to Sharing Backend
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-06-22 10:25:17 +02:00
Thomas Citharel
4129089f87
Avoid calendar & addressbook activities being created on user being deleted
Addressbooks and Calendar data are destroyed through hook OC_User::pre_deleteUser, which when it reaches the backends sends AddressBookDeletedEvent/CalendarDeletedEvent typed events, which in turns generates activities that aren't deleted until they expire.

This can probably lead to old activities being visible for a new user created with the same uid.

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-06-14 11:54:42 +02:00
Vincent Petry
8e61671b82
Merge pull request #32364 from nextcloud/dav-listeners
🧹 Remove all legacy event dispatchers from CalDAV & CardDAV backends
2022-06-10 15:57:35 +02:00
Thomas Citharel
c6c3fd9aa9
Avoid creating carddav activities for the system user
Because of the system addressbook synchronisation.

Closes #32803

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-06-10 09:07:53 +02:00
Christopher Ng
57c66bf7cb Use Image class from public API
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2022-06-02 00:37:36 +00:00
Thomas Citharel
28b0da59ce
Fix a doctype in OCP for IAddressBook
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-17 15:09:49 +02:00
Thomas Citharel
060c8d7c4b
Add some typed properties
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-17 15:09:49 +02:00
Thomas Citharel
4bb31c021e
Remove all legacy event dispatchers from CalDAV & CardDAV backends
Move them to proper EventListeners and test them

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-17 15:09:46 +02:00
Carl Schwan
07c9bf1adf
Merge pull request #31943 from nextcloud/dav-cleanup
Cleanup dav
2022-05-17 14:59:59 +02:00
Carl Schwan
f7be76125f Fix more psalm issues
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-05-16 11:05:54 +02:00
Carl Schwan
e71db40492 Wrap multiple inserts inside a transation
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-05-12 21:02:53 +02:00
Carl Schwan
eef973e85b Minor optimizations for saving user personal information
* Remove double hook: the OC_User::changeUser triggers an
OC\AccountManager::userUpdated and the app is already listening to this
signal in its Application definition

* Make createCard not check if an card exists if we already checked
  previously. We also don't try to get the card if the user is disabled
  as we don't use the card in this case

We this change we go from 100 DB requests to 80 DB requests when saving
an user email address.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
(cherry picked from commit c6fd482edf33214a9ad4787e4cac278f871fa7c8)
2022-05-12 21:02:52 +02:00