Commit Graph

4616 Commits

Author SHA1 Message Date
TowyTowy
f48dc47177 Fix: text-match filter crashes on structured property (vCard N/ADR)
A CardDAV addressbook-query REPORT with a text-match prop-filter on a
structured property (e.g. N or ADR) returned HTTP 500. vobject parses
these into Name/Address objects rather than plain strings, so text_match
called .lower() on a non-string and raised AttributeError. Coerce
non-string values to their text representation before matching.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-15 11:26:45 +02:00
Peter Bieringer
35567e53ba Merge pull request #2180 from TowyTowy/fix/expand-strip-recurrence-props
Fix: expand REPORT leaves recurrence properties (RDATE) on expanded instances
2026-07-13 21:51:13 +03:00
TowyTowy
a7da8ddd4b tests: guard REPORT response type to satisfy mypy
Assert the response is a dict before indexing, matching the existing
pattern used elsewhere in test_expand.py, so the Lint (mypy) job passes.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-13 13:00:41 +02:00
TowyTowy
9d46d5b63d Fix: expand REPORT leaves recurrence properties on expanded instances
_strip_single_event() removed the recurrence-defining properties (RRULE,
EXDATE, EXRULE, RDATE) with a single try/except around sequential
delattr() calls. When one of them was absent (e.g. an event with no
EXDATE), the AttributeError aborted the whole block and the following
properties -- notably RDATE -- were left on the expanded
single-occurrence VEVENTs returned by a calendar-data expand REPORT.

Remove each property independently so a missing one no longer prevents
removal of the others. Add a regression test and fixture.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-12 22:30:47 +02:00
Peter Bieringer
ffb90de841 Merge pull request #2179 from maxberger/master
Fix new JS verification errors and force specific TSC version
2026-07-12 11:49:14 +03:00
Max Berger
1f1e94340d Fix new JS verification errors and force specific TSC version
The new TSC compiler does stricter checking on the JS documentation
strings. All documentation strings have been updated to pass with
the current version (7.0.2)

In addition, the version of the TSC compiler used during the github
action will be fixed to 7.0.2, so that we don't get these type of
sudden errors again in the future. Unfortunately this means we need
to periodically update this manually.
2026-07-12 09:31:54 +02:00
Peter Bieringer
1e31d757cb 3.7.7.dev 2026-07-12 08:02:43 +02:00
Peter Bieringer
ddc956e726 Merge pull request #2178 from TowyTowy/fix/time-range-whole-day-duration
Fix: time-range filter matches VEVENT with whole-day DURATION
2026-07-12 08:30:59 +03:00
TowyTowy
e557c0cd5e Fix: time-range filter matches VEVENT with whole-day DURATION
A calendar-query REPORT with a time-range filter failed to return a
VEVENT that has a whole-day DURATION (e.g. DURATION:P1D or P2D) whenever
the queried range fell inside the event but after DTSTART.

The VEVENT time-range logic in radicale/item/filter.py gated the
"non-zero duration" branch (rfc4791-9.9 line 2) on timedelta.seconds
instead of timedelta.total_seconds(). For a duration that is an exact
multiple of 24h, timedelta.seconds is 0 (the days component holds the
value), so the event was treated as zero-length (line 3) and only
matched a one-second window at its start. An identical event expressed
with DTEND matched correctly, confirming the defect is isolated to the
DURATION path.

Use total_seconds() so multi-day durations are handled correctly. Adds a
regression test (event11, DURATION:P2D) covering both an inside-range
match and an outside-range non-match.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 15:58:39 +02:00
Peter Bieringer
21ad7466c5 Release 3.7.6 2026-07-07 07:23:17 +02:00
Peter Bieringer
21c9bdb1af Merge pull request #2176 from pbiering/pr2171-overtake
Append domain to login before trying IMAP connection (reviewed)
2026-07-05 14:22:46 +03:00
Peter Bieringer
76d7dc3997 imap_append_domain: changelog 2026-07-05 12:58:39 +02:00
Peter Bieringer
38a4715a7f imap_append_domain: make "@" mandatory and add some failsafe checks 2026-07-05 12:54:57 +02:00
Michael Bartel
b3770c4f2d Append domain to login before trying IMAP connection
Append email domain to login before trying connect to the IMAP server. Use this instead of strip_domain,
which removes the domain before trying the IMAP connection, to avoid the domain in the folder names of the collection.
2026-07-05 12:27:09 +02:00
Peter Bieringer
50d8ee97a0 Merge pull request #2174 from tendstofortytwo/add-groups-to-docs
add documentation for `groups` in rights file
2026-07-02 08:37:50 +03:00
Naman Sood
b9327989ec add documentation for groups in rights file
This config key is undocumented, seemingly by accident?
2026-07-01 22:57:21 -04:00
Peter Bieringer
69b265b539 mark also windows for non-reliable sleep times 2026-06-28 22:15:44 +02:00
Peter Bieringer
667f9c0109 Merge pull request #2173 from pbiering/fix-trailing-space-on-timezone
Fix trailing space on timezone
2026-06-28 22:49:42 +03:00
Peter Bieringer
4ce951602c add changelog entry 2026-06-28 21:24:01 +02:00
Peter Bieringer
ed6095620e add test case 2026-06-28 21:19:47 +02:00
Peter Bieringer
64005c967b fix trailing space bug introduced by Microsoft 2026-06-28 21:19:27 +02:00
Peter Bieringer
f36d2b5fcb Merge pull request #2170 from arkj/fix-map-share-href-encoding
sharing: make share-href backmap URL-encode-aware (fixes editing shared collections for '@' principals)
2026-06-24 07:41:21 +03:00
Arkadiusz Juszczyk
828691e3c4 sharing: URL-encode-aware backmap of REPORT/PROPPATCH hrefs
make_href percent-encodes hrefs (an '@' in an email principal becomes
%40), but the backmap compared against the raw PathMapped, so the
rewrite was skipped and the owner's real path leaked -- editing a shared
collection then failed with 403. Compare and rewrite on the quoted form.
2026-06-24 01:02:28 +02:00
Peter Bieringer
5c69056c46 Merge pull request #2167 from pbiering/rrdate-period
proper PERIOD handling for RDATE depending on vobject version
2026-06-21 18:30:55 +03:00
Peter Bieringer
51919e2048 add changelog 2026-06-21 16:50:33 +02:00
Peter Bieringer
3f973a870d add test cases for PERIOD support 2026-06-21 16:31:29 +02:00
Peter Bieringer
8bcd43742a add test whether vobject supports PERIOD 2026-06-21 16:30:53 +02:00
Peter Bieringer
47fdd34058 rename var to avoid name overlap 2026-06-21 16:28:17 +02:00
Peter Bieringer
af8d679e35 include UID in error message 2026-06-21 16:18:36 +02:00
Peter Bieringer
919f8ed70e Merge pull request #2166 from pbiering/extend-item-verify
extend item verification on command line
2026-06-19 07:46:04 +03:00
Peter Bieringer
ddaa187e03 catch not resolvable tag 2026-06-19 06:13:49 +02:00
Peter Bieringer
a62e3076ab lost line 2026-06-19 06:05:51 +02:00
Peter Bieringer
ecb0cc8647 extend item verification code on commandline 2026-06-19 06:02:31 +02:00
Peter Bieringer
b156317a29 update changelog 2026-06-19 05:57:05 +02:00
Peter Bieringer
e3301753f9 Development 3.7.6.dev 2026-06-19 05:44:24 +02:00
Peter Bieringer
a5b2303fb2 fix loglevel and indent 2026-06-18 08:32:40 +02:00
Peter Bieringer
0e075e2e6b ignore docker workflow file for test 2026-06-14 17:09:07 +02:00
Peter Bieringer
52f1062d90 Merge pull request #2164 from kalsi-avneet/master
Docker build - pass proper VERSION argument
2026-06-14 18:08:00 +03:00
kalsi-avneet
a53f7a79fd Docker build - pass proper VERSION argument 2026-06-14 14:57:43 +00:00
Peter Bieringer
23b19b92be Release 3.7.5 2026-06-14 09:20:08 +02:00
Peter Bieringer
63b6a149ee Merge pull request #2162 from maxberger/master
UI: disable conversion mode buttons on edit
2026-06-14 07:40:46 +03:00
Max Berger
ea8f4a4477 UI: disable conversion mode buttons on edit
The conversion type cannot be changed once a share is created, so disable the edit buttons.
2026-06-13 21:13:45 +02:00
Peter Bieringer
04cbf35a23 Merge pull request #2161 from maxberger/master
UI Bugfix: Allow changing of data on previously unconfigured share
2026-06-13 08:53:16 +03:00
Max Berger
d612b00ba0 UI Bugfix: Allow changing of data onn previously unconfigured share 2026-06-12 08:22:42 +02:00
Peter Bieringer
bb2edcbc4e Merge pull request #2160 from maxberger/master
Remove obsolete integ_test
2026-06-11 21:29:23 +03:00
Max Berger
754afa3ecc Remove obsolete integ_test
This test was checking for conversions between sharing configs, which is
no longer possible
2026-06-11 19:35:07 +02:00
Peter Bieringer
89b4885bc2 Merge pull request #2158 from pbiering/sharing-bday-template-age-check
Sharing bday template age check
2026-06-11 18:54:16 +03:00
Peter Bieringer
d76a443c5d sharing/bday/tests: add missing file 2026-06-11 15:27:57 +02:00
Peter Bieringer
d7aaf09d47 sharing/bday/placeholder: add note related to age 2026-06-11 08:57:24 +02:00
Peter Bieringer
048845f615 sharing/bday/template: adjust+add test cases 2026-06-11 08:55:29 +02:00