Commit Graph

43 Commits (40117dced319cd9800e831a070c72a9463cc81aa)

Author SHA1 Message Date
Richard Steinmetz 7bb0e0de7a
Merge pull request #54405 from nextcloud/perf/custom-properties-default-value
perf: delete commonly used custom properties instead of setting the default value
2025-08-15 13:34:29 +07:00
Carl Schwan 9df79bae10 perf(caldav): Only prefetch published properties
Signed-off-by: Carl Schwan <carl.schwan@nextclound.com>
2025-08-15 09:57:58 +07:00
Carl Schwan 46f0c6ebb5 perf(caldav): Cache calendars in CustomPropertiesBackend
We already do that for files, we are now also doing for calendars.
With relatively small amount of calendars, I managed to reduce the
number of DB requests by 35% and from 23 DB requests touching the
oc_properties table to only 3.

Signed-off-by: Carl Schwan <carl.schwan@nextclound.com>
2025-08-15 09:57:58 +07:00
Robin Appelman 06aa7035db
Merge pull request #54420 from nextcloud/disable-custom-props-events
perf(calendar): Disable custom properties for individual calendar events
2025-08-14 15:55:36 +07:00
Carl Schwan 90cc0454a7 perf(calendar): Disable custom properties for individual calendar events
Save a query per event stored in the calendar and at least on the
production instance, there is no entries in the table for the events.

Signed-off-by: Carl Schwan <carl.schwan@nextclound.com>
2025-08-14 11:27:44 +07:00
Richard Steinmetz 7c0ffc0759
perf: delete commonly used custom properties instead of setting the default value
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-08-13 20:07:43 +07:00
Robin Appelman 46b5ff7467 perf: ignore any customer property in the nc/oc namespace that isn't explicitly allowed
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-08-13 19:32:45 +07:00
Ferdinand Thiessen 5981b7eb51
chore: apply new CSFixer rules
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>

# Conflicts:
#	apps/settings/lib/SetupChecks/PhpOpcacheSetup.php
2025-07-01 16:26:50 +07:00
Julius Knorr 24f3b15acc
perf: Skip photos app related property in custom properties
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-05-20 11:56:26 +07:00
Robin Appelman 5c66fead67
fix: fix preloading files with no custom properties
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-04-09 15:04:35 +07:00
SebastianKrupinski c1dd8ddf59 fix: replace null character when serializing
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2024-12-13 11:46:26 +07:00
provokateurin 381077028a
refactor(apps): Use constructor property promotion when possible
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-10-21 12:37:59 +07:00
Robin Appelman 1363e142d8
fix: make preload custom proterties sharding compatible
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-28 10:27:14 +07:00
Richard Steinmetz cbea787233
fix(caldav): stricter default calendar checks
Reject calendars that
- are subscriptions
- are not writable
- are shared with a user
- are deleted
- don't support VEVENTs

Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2024-07-22 15:24:39 +07:00
Joas Schilling e9bfaf31b8
fix(db): Don't use deprecated 3rdparty constant: `Doctrine\DBAL\Connection::PARAM_STR_ARRAY`
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-07-19 11:21:13 +07:00
Andy Scherzinger 9d4b944098
chore: Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-05-27 20:11:22 +07:00
Richard Steinmetz 53ef6c5f71
feat(dav): update a principal's schedule-default-calendar-URL
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2024-02-28 14:51:10 +07:00
Hamid Dehnavi 7bf31df0bc Refactors "substr" calls to improve code readability
Signed-off-by: Hamid Dehnavi <hamid.dev.pro@gmail.com>
2024-02-23 15:54:10 +07:00
Louis Chemineau 6aa2d2daee
Don't query oc_properties for metadata props
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-12-18 13:09:20 +07:00
Daniel aa5dcb0952
Merge pull request #38397 from nextcloud/enh/contacts/hide-adressbook-option
enh(contacts): show/hide addressbooks for all
2023-07-18 17:05:12 +07:00
Johannes Merkel bb802956a2 enh(contacts): show/hide addressbooks for all
Signed-off-by: Johannes Merkel <mail@johannesgge.de>
2023-07-10 13:39:15 +07:00
Robin Appelman 95c3b8131a
preload custom properties when propfinding folders
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-07-09 02:55:57 +07:00
jld3103 7e58aa1a05
Fix DAV types
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2023-04-05 07:06:50 +07:00
Arthur Schiwon ec09605109
catch any exception for transaction control
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2022-07-06 16:14:51 +07:00
Arthur Schiwon 794177e753
DAV custom props: catch Exception and rollback transaction in case
- before exceptions were not caught, a started transaction might not have
  been finished
- also resolve depractions and use IQueryBuilder

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2022-07-01 22:44:20 +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
Julius Härtl a54fc45311
Add known dav properties to ignore list
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-04-21 17:01:42 +07:00
Côme Chilliet 40cdc54ae8
Convert properties value to string before passing them to database
This avoids an error when passing a complex property to PROPPATCH under
 PHP >= 7.4.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-01-20 15:08:04 +07:00
Christoph Wurst baf4ad1774
Allow certain custom DAV props to be readable by everyone
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-06-08 13:57:00 +07:00
John Molakvoæ (skjnldsv) 215aef3cbd
Update php licenses
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-06-04 22:02:41 +07:00
Christoph Wurst caff1023ea
Format control structures, classes, methods and function
To continue this formatting madness, here's a tiny patch that adds
unified formatting for control structures like if and loops as well as
classes, their methods and anonymous functions. This basically forces
the constructs to start on the same line. This is not exactly what PSR2
wants, but I think we can have a few exceptions with "our" style. The
starting of braces on the same line is pracrically standard for our
code.

This also removes and empty lines from method/function bodies at the
beginning and end.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 14:19:56 +07:00
Christoph Wurst 1a9330cd69
Update the license headers for Nextcloud 19
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-03-31 14:52:54 +07:00
Christoph Wurst 74936c49ea
Remove unused imports
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-03-25 22:08:08 +07:00
Robin Appelman 15a21ee19a
remove the detour trough node and work with path directly
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-03-18 13:41:04 +07:00
Robin Appelman 451c8761a7
use INode instead of Node for custom properties
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-03-18 13:41:04 +07:00
Robin Appelman 7819a904d7
handle long property paths to hasing paths >250 chars
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-03-18 13:41:04 +07:00
Robin Appelman 95cd44c41e
remove unused code
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-03-18 13:41:04 +07:00
Robin Appelman ce398cf7bd
merge the two almost identical custom property backends
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-03-18 13:41:04 +07:00
Christoph Wurst 5bf3d1bb38
Update license headers
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2019-12-05 15:38:45 +07:00
Robin Appelman 3806ecb242
use the same ignored properties list for both CustomerPropertiesBackends
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-08-28 18:27:53 +07:00
Morris Jobke 31c5c2a592
Change @georgehrke's email
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-06 20:38:59 +07:00
Morris Jobke 0eebff152a
Update license headers
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-06 16:56:19 +07:00
Georg Ehrke 242bb746b9
OCA\DAV\Files\CustomPropertiesBackend -> OCA\DAV\DAV\CustomPropertiesBackend
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2017-03-27 19:15:51 +07:00