Commit Graph

149 Commits (bf2dcd67f3cb83e3bebc472d65fac3bc8755e25d)

Author SHA1 Message Date
Joas Schilling 05aa39d777
Fix event names of 2FA related typed events
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-03 14:25:01 +07: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 +07:00
Arthur Schiwon b6c034ac57
Merge pull request #37961 from nextcloud/poc/noid/systemtags-perf
SystemTags endpoint to return tags used by a user with meta data
2023-05-11 10:16:03 +07:00
Arthur Schiwon 6bff6a5667
PoC: SystemTags endpoint to return tags used by a user with meta data
Target case is photos app: when visiting the tags category, all systemtags
of the whole cloud are retrieved. In subequent steps the next tag is
requested until the browser view is filled with tag tiles (i.e. previews
are requested just as well).

With this approach, we incorpoate the dav search and look for user related
tags that are used by them, and already returns the statistics (number of
files tagged with the respective tag) as well as a file id for the purpose
to load the preview. This defaults to the file with the highest id.

Call:
curl -s -u 'user:password' \
  'https://my.nc.srv/remote.php/dav/systemtags-current' \
  -X PROPFIND -H 'Accept: text/plain' \
  -H 'Accept-Language: en-US,en;q=0.5'  -H 'Depth: 1' \
  -H 'Content-Type: text/plain;charset=UTF-8' \
  --data @/home/doe/request-systemtag-props.xml

With request-systemtag-props.xml:
<?xml version="1.0" encoding="UTF-8"?>
<d:propfind xmlns:d="DAV:">
        <d:prop xmlns:oc="http://owncloud.org/ns" xmlns:nc="http://nextcloud.org/ns">
                <oc:id/>
                <oc:display-name/>
                <oc:user-visible/>
                <oc:user-assignable/>
                <oc:can-assign/>
                <nc:files-assigned/>
                <nc:reference-fileid/>
        </d:prop>
</d:propfind>

Example output:
  …
  <d:response>
    <d:href>/master/remote.php/dav/systemtags/84</d:href>
    <d:propstat>
      <d:prop>
        <oc:id>84</oc:id>
        <oc:display-name>Computer</oc:display-name>
        <oc:user-visible>true</oc:user-visible>
        <oc:user-assignable>true</oc:user-assignable>
        <oc:can-assign>true</oc:can-assign>
        <nc:files-assigned>42</nc:files-assigned>
        <nc:reference-fileid>924022</nc:reference-fileid>
      </d:prop>
      <d:status>HTTP/1.1 200 OK</d:status>
    </d:propstat>
  </d:response>
  <d:response>
    <d:href>/remote.php/dav/systemtags/97</d:href>
    <d:propstat>
      <d:prop>
        <oc:id>97</oc:id>
        <oc:display-name>Bear</oc:display-name>
        <oc:user-visible>true</oc:user-visible>
        <oc:user-assignable>true</oc:user-assignable>
        <oc:can-assign>true</oc:can-assign>
        <nc:files-assigned>1</nc:files-assigned>
        <nc:reference-fileid>923422</nc:reference-fileid>
      </d:prop>
      <d:status>HTTP/1.1 200 OK</d:status>
    </d:propstat>
  </d:response>
  …

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-09 23:51:48 +07: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 +07:00
Joas Schilling b91957e3df
fix(dav): Abort requests with 429 instead of waiting
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-05-03 22:43:36 +07:00
Robin Appelman 74ced3d2eb
expose system tags as dav property for files
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-28 10:46:38 +07:00
Ferdinand Thiessen 62c4ae78df Feature: Provide access to app generated calendars through CalDAV
This adds CalDAV support for app generated calendars,
which are registered to the nextcloud core.
This is done by adding a dav plugin which wraps
all ICalendarProviders into a Sabre plugin (inspired by the deck app).

Add unit test for AppCalendar wrapper plugin and calendar object implementation.

Signed-off-by: Ferdinand Thiessen <rpm@fthiessen.de>
2023-04-25 18:11:49 +07:00
Joas Schilling cca3b9495c
chore(autoloader): Update autoloaders with composer 2.5.5
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-04-21 15:53:55 +07:00
Anna ac90fa2f8e
Merge pull request #36800 from rotdrop/feature/dav-macos-quirks
apps/dav: add some OSX specific quirks.
2023-03-13 11:46:19 +07:00
Julius Härtl e23aa8883e
feat(s3): Use multipart upload for chunked uploading
This allows to stream file chunks directly to S3 during upload.

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-08 14:00:04 +07:00
Claus-Justus Heine 64e9dcc9c3
apps/dav: add some OSX specific quirks.
Signed-off-by: Claus-Justus Heine <himself@claus-justus-heine.de>
2023-03-07 16:23:30 +07:00
Anna Larch 38e9cb6a05 Use recurrence instance to build iMip email
instead of the main VEVENT of a repeating event

Fixes part of https://github.com/nextcloud/calendar/issues/3919

Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-02-02 16:25:59 +07:00
Christoph Wurst aee9941fed
chore(autoloaders): Update autoloader files for Composer 2.5.1
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-01-25 10:42:34 +07:00
Julien Veyssier 73f2876d64
rename SabrePublicPluginEvent to BeforeSabrePubliclyLoadedEvent, run build/autoloaderchecker.sh
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2022-12-15 17:37:34 +07:00
Carl Schwan f244406ebd Update composer autoloader
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-11-22 13:35:17 +07: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 +07:00
Joas Schilling c443ecfbff
Rebuild autoloader
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-09-20 10:33:26 +07:00
Carl Schwan 9b8ca9ad1f
Move findBinaryFinder and isFunctionEnabled away from OC_Helper
findBinaryFinder is now a service that is still private but with some
minor optimization (remove the hasKey check).

isFunctionEnabled is now in OCP\Util

Both function are still keep but all internal usage in nextcloud/server
were migrated to the new usage, so that we can remove it in 26

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-08-23 19:44:04 +07:00
Vincent Petry a95c19e14b
Add share attributes + prevent download permission
Makes it possible to store download permission

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2022-07-28 16:53:22 +07:00
Carl Schwan 16b5e6bc7f
Merge pull request #32973 from nextcloud/cleanup/avatar-code
Cleanup avatar related code
2022-07-11 11:56:39 +07:00
Carl Schwan ec5cbdeb7f Make Color class public
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-07-05 14:44:44 +07:00
Joas Schilling fdcf3eafd6
Fix determination of cron job run
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-07-01 12:33:05 +07: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 +07:00
Thomas Citharel 39ef0500d1
Handle the move operation properly between shared calendars
- Introduce a new CalendarObjectMovedEvent typed event dedicated for
  this operation
- Handle the event in the activity backend and add new appropriate activity subjects

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-06-14 14:40:24 +07:00
Vincent Petry 2ee948e8d1
Merge pull request #30368 from nextcloud/dav-allow-object-properties
Allow DAV Object properties
2022-06-10 17:07:38 +07: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 +07:00
Joas Schilling 8e3b30f388
Don't spam the log with fatals when maintenance mode is enabled or an upgrade has to be done
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-06-10 00:36:52 +07: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 +07:00
Thomas Citharel bd8b2137e2
Allow DAV Object properties
The current implementation only saves them as string. It seems they can
be more complex than that, and that objects were saved directly.

You may find such objects saved in some production databases by
executing:
```sql
SELECT * from oc_properties where propertyvalue = 'Object';
```

This commit adds a repair job to clean all of these "broken" properties
values, adds a new database column to save the type of the property, and
handles converting from and to correct values.

Implementation is very similar to SabreDAV's own PDO backend: 4921806dfb/sabre/dav/lib/DAV/PropertyStorage/Backend/PDO.php

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-16 15:02:00 +07:00
Carl Schwan 829490ab7a Cleanup dav
- Remove unused class AppEnabledPlugin
- Add more type hinting when possible

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-05-05 22:03:59 +07:00
Carl Schwan 7817845538 Add a metadata service to store file metadata
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-04-13 14:06:29 +07:00
Vincent Petry 4bb8e9472e
Merge pull request #31673 from nextcloud/feat/contacts-migration
Contacts migration
2022-04-07 17:36:53 +07:00
John Molakvoæ 47cc5a9405
Merge pull request #29510 from nextcloud/backport/27378/master 2022-04-04 22:15:01 +07:00
Carl Schwan 135bdb3d58
Merge pull request #30823 from nextcloud/work/profiler
Built-in profiler

This adds the required API for collecting information about requests. This information
can then be displayed with the new 'profiler' app.
2022-04-04 12:56:37 +07:00
Carl Schwan 7d272c54d0 Add a built-in profiler inside Nextcloud
The webui is provided by a seperate application named profiler

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-04-04 10:28:26 +07:00
Robin Appelman ff666e648a Add dav plugin to trigger recalculating of checksums
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-03-31 07:44:13 +07:00
Christopher Ng 38d4c5290b Contacts export and import
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2022-03-30 18:28:49 +07:00
Côme Chilliet d84e87eab9
Build autoloader with new composer version
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-03-30 15:40:23 +07:00
Christopher Ng 302a67f685 Integrate migrator
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2022-03-02 01:59:15 +07:00
Christopher Ng 4eff359441 Calendar export and import
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2022-03-02 01:59:15 +07:00
Louis Chemineau bc2c02f451 Wrap S3 multipart upload exception
Signed-off-by: Louis Chemineau <louis@chmn.me>
2022-02-16 14:56:14 +07:00
Robin Appelman c712987878
send request id in response header
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-02-01 14:24:01 +07:00
Louis Chemineau 69b8044b8f Set the file's mtime from the headers in bulk upload
Signed-off-by: Louis Chemineau <louis@chmn.me>
2022-01-11 17:10:14 +07:00
Carl Schwan dacf2e47a3
Update to composer 2.1.11
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2021-11-04 12:30:11 +07:00
John Molakvoæ d6a26b2536
Revert "add dav plugin to trigger recalculating of checksums" 2021-11-01 11:26:17 +07:00
John Molakvoæ e1bf5c1cd3
Merge pull request #27378 from nextcloud/dav-recalc-checksum 2021-11-01 11:25:21 +07:00
Christoph Wurst f432dd2e2e
Add scheduling availability settings
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-10-18 20:21:51 +07:00
Louis Chemineau def983dc7e Clean BulkUpload plugin
Signed-off-by: Louis Chemineau <louis@chmn.me>
2021-10-16 09:42:07 +07:00
Louis Chemineau fc6e07705a Add BulkUpload DAV plugin
Signed-off-by: Louis Chemineau <louis@chmn.me>
2021-10-15 11:54:01 +07:00