Commit graph

1136 commits

Author SHA1 Message Date
Maarten
a174bf7ba0
Merge pull request #1879 from tribut/smime-intermediate-certs
Add intermediate certificates for S/MIME signing
2026-10-22 13:41:20 +02:00
Maarten
77be04d427
Merge pull request #1863 from SergeyMosin/pgp-improvements
PGP improvements
2026-10-22 13:39:45 +02:00
Maarten
cf185b9ab5
Merge pull request #2066 from Ron-RONZZ-org/feature/admin-trusted-header-auth
Admin panel: accept trusted proxy-auth header (X-NC-Admin) on the admin host
2026-10-22 13:37:52 +02:00
Maarten
9f0e6d946a
Merge pull request #2074 from FathiBenNasr/fix/getcontactbyemail-missing-columns
PdoAddressBook: GetContactByEmail() passed the wrong columns
2026-10-22 12:59:25 +02:00
Maarten
e7a491b0f5
Merge pull request #2079 from MiDniGG/fix/autosave-duplicate-contacts
Fix duplicate contacts on autosave for addresses with uppercase letters
2026-10-22 12:18:12 +02:00
the-djmaze
8667af700d Improved font-size handling to prevent issue #1082 2026-10-20 16:25:00 +02:00
Andreas Pries
6ef8a9a391 Fix duplicate contacts on autosave for addresses with uppercase letters
IncFrec() lowercases the existing addresses but compares them against the
new address in its original case, so an address with uppercase letters is
never found and a new contact is created on every send.

Fixes #1767
2026-09-29 22:48:07 +02:00
Fathi Ben Nasr
279cc6406e PdoAddressBook: GetContactByEmail() passed the wrong columns
GetContactByEmail() runs

    SELECT DISTINCT id_contact FROM rainloop_ab_properties WHERE ...

and hands the statement to getContactsFromPDO(), which unconditionally reads
id_contact_str, changed, etag and jcard from every row. None of those are
selected, so every match raises three PHP warnings:

    Undefined array key "id_contact_str"
    Undefined array key "changed"
    Undefined array key "etag"

and the Contact that comes back carries IdContactStr '' with Changed and Etag
both 0 -- values a CardDAV sync would use.

The lookup itself still works: with no jcard column either, every row falls
into the follow-up properties query, so the contact data is right and only the
metadata is wrong. That is what makes it easy to miss.

It is not rare. The avatars plugin calls GetContactByEmail() for the sender of
a message, so a mailbox view triggers it repeatedly -- 23 warnings in a single
session on one of our installs.

Fix: look the contact up by id instead. GetContactByID() already selects the
columns getContactsFromPDO() expects, so the Contact comes back complete, and
the search query keeps doing what it is good at -- finding the id. The unused
$oContact and $iIdContact locals go with it.

Verified against a real PDO: the current query returns one column and the
reader warns on id_contact_str; the replacement returns all of them, warns
nothing, and yields the real IdContactStr and changed instead of '' and 0.

Note: this layer has no test suite upstream, so the verification is a
standalone reproduction rather than an added test.
2026-09-05 03:37:09 +00:00
Rong Zhou
640c567210 Admin panel: accept trusted proxy-auth header (X-NC-Admin) on the admin host
Allows gating the SnappyMail admin panel behind an external single sign-on
layer (e.g. a reverse-proxy auth_request validated against an OpenID Connect /
Nextcloud session) without embedding an OIDC client in SnappyMail. The header
is honored only when present AND the request Host matches admin_panel.host
(defense in depth), so it has no effect on regular webmail or on the panel
when admin_panel.host is unset.

Behavior is unchanged when the header is absent: the existing
admin_login/admin_password (+ optional admin_totp) check applies.

Contributed from Ron-RONZZ-org/ronzz-nextcloud (webmail/patches/).
2026-08-16 18:17:08 +02:00
Maarten
56409dcbb4
Merge branch 'master' into pgp-improvements 2025-06-16 17:28:39 +02:00
HeySora
5bba3dac82
Automatically add favicon host to CSP if present 2025-01-14 13:27:26 +01:00
Felix Eckhofer
dddf360db6
Add intermediate certificates for S/MIME signing 2025-01-07 21:32:26 +01:00
Sergey Mosin
c0348893af Delete OpenPGP keys on the server when they are deleted in the browser 2024-12-05 11:14:03 -05:00
the-djmaze
cd3398db20 Resolve #1850 2024-11-26 01:47:34 +01:00
the-djmaze
8b5547104d Only allow Proxy for logged in users 2024-11-12 00:35:51 +01:00
the-djmaze
0d5d403fb8 Resolve #1825 2024-11-12 00:00:11 +01:00
the-djmaze
91ff43e6ab Resolve #1828 2024-11-11 23:57:41 +01:00
the-djmaze
3d55bdaf5a Added test contacts CardDAV settings 2024-10-29 13:17:30 +01:00
the-djmaze
055c0d3bf4 Added setting for default messages sort mode 2024-10-11 00:28:05 +02:00
the-djmaze
b86743de24 Resolve #1706 2024-10-08 22:52:33 +02:00
the-djmaze
28a8e3c157 Added the proper logging for #1706 2024-10-08 13:06:43 +02:00
the-djmaze
3931c11255 Added extension info to Admin -> Extensions -> Popup 2024-09-24 16:53:46 +02:00
the-djmaze
6b03820338 Resolve #1746 2024-09-24 15:54:55 +02:00
djmaze
932525566f Keep 1 space between HTML elements 2024-09-24 11:45:36 +02:00
the-djmaze
04f3133f27 Some small idea changes 2024-09-22 11:55:57 +02:00
the-djmaze
5056ecf493 Bugfix: ClientException #1706 2024-09-20 23:33:25 +02:00
the-djmaze
16cc17af00 Change for #1706 to debug more 2024-09-19 00:15:04 +02:00
the-djmaze
4e3a7a6de2 PHP 8.4: Implicitly nullable parameter declarations deprecated 2024-09-17 15:58:37 +02:00
the-djmaze
a6ff022c0e Resolve #1754 2024-09-17 10:09:57 +02:00
the-djmaze
8fb7067531 Added option to convert HTML to Markdown instead of plain, using Turndown #1604 2024-09-14 14:00:36 +02:00
the-djmaze
0db6c6ab5f Bugfix: use_local_proxy_for_external_images is part of labs, not security
@SonarSource
2024-08-30 01:50:03 +02:00
the-djmaze
d0fb4ee2f6 Improved clear cookie handling 2024-08-30 01:47:28 +02:00
the-djmaze
082dd3af41 Bugfix: Call to a member function Email() on null #1706 2024-08-27 23:39:27 +02:00
the-djmaze
1ad946d013 v2.37.3 2024-08-27 16:47:44 +02:00
the-djmaze
3306fadc47 MS autodiscover priorities DNS over subdomain 2024-08-27 13:19:30 +02:00
the-djmaze
9e2b9a9fcd Show GnuPG version for #1560 2024-08-27 12:12:33 +02:00
the-djmaze
daf02e53f3 Resolve #1706 2024-08-26 11:20:07 +02:00
the-djmaze
cb7dafba4d Cleanup Cacher handling and added some documentation 2024-08-25 17:35:14 +02:00
the-djmaze
6a1b83b365 Resolve #1678 2024-08-20 16:30:25 +02:00
the-djmaze
e5a176f5ea Added editing of ACL rules #157 2024-08-20 13:05:06 +02:00
the-djmaze
d00c953c88 Change handling of (token) errors due to #1706 2024-08-16 22:05:15 +02:00
the-djmaze
e22414d908 Resolve #1645 2024-08-13 01:14:15 +02:00
the-djmaze
3ba75fecba Resolve #1703 2024-08-13 00:39:06 +02:00
the-djmaze
486bbba4ca Bugfix: Attempt to read property "smimeSigned" on null 2024-08-12 17:08:36 +02:00
the-djmaze
55d7d52e35 Use PHP_SAPI 2024-08-12 17:07:44 +02:00
the-djmaze
13cb08f64a FileStorage strict properties 2024-08-12 15:24:52 +02:00
the-djmaze
a969179cbf Make #1689 optional through application.ini 2024-08-11 12:00:24 +02:00
the-djmaze
aa52d2e8f8 Resolve #1689 2024-08-06 17:50:43 +02:00
the-djmaze
cc04a82bfe Resolve #1686 2024-08-06 11:40:25 +02:00
the-djmaze
d7bf80ea79 Merge branch 'master' into mark-for-deletion-issue-1657 2024-07-14 23:09:48 +02:00