Commit graph

3553 commits

Author SHA1 Message Date
Francis Lachapelle 6e0e678627 fix(core): improve error log when parsing PKCS12 certificate 2020-08-05 14:54:55 -04:00
Nicolas Höft 1f9888254a
feat(core): Allow disabling tls validation for localhost (#286) 2020-08-05 13:52:18 -04:00
Francis Lachapelle d930821d6b feat(mail): handle multiple mail identities
Fixes #5117
2020-08-03 22:48:45 -04:00
Francis Lachapelle a8bbaf01d7 feat(mail): handle multiple mail identities
Fixes #5087
2020-07-30 15:16:28 -04:00
Francis Lachapelle 5e1a59243c fix(calendar): uncondtionally adjust all-day events dates
Fixes #5045
2020-07-24 15:24:40 -04:00
Francis Lachapelle 9c391b8d8d fix(mail): use unique names for attachments
Fixes #5086
2020-07-23 12:56:35 -04:00
Francis Lachapelle e6e994ba80 fix(core): don't synchronize defaults if no mail identity is created
Fixes #5070
2020-07-16 13:52:35 -04:00
Francis Lachapelle b7f0ee7228 fix(mail): use double-quotes for attributes when re-encoding HTML 2020-07-13 16:40:11 -04:00
Francis Lachapelle 3d25b8b571 fix(addressbook): handle vCard with multiple title values 2020-07-10 17:04:24 -04:00
Francis Lachapelle 208ee08960 feat(mail): handle multiple mail identities
Create read-only identities for email addresses for which no identity has been defined. This way, when visiting the message editor, the user will have access to all of her known email addresses.

Fixes #768, fixes #4602
2020-07-10 17:01:26 -04:00
Ludovic Marcotte 39255b193d fix(eas): handle noselect special folders in Dovecot 2020-07-08 13:19:12 -04:00
Francis Lachapelle d29c2b2c7b fix(mail): add all unknown recipients to an address book
When SOGoMailAddOutgoingAddresses is enabled, all unknown recipients are
now added to the destination address book.
2020-07-07 15:46:38 -04:00
Francis Lachapelle 96c22b6b96 fix(addressbook): handle vCard with multiple title values 2020-07-07 14:14:08 -04:00
Francis Lachapelle c2d937746f fix(calendar): ensure valid identity when sending invitations 2020-07-06 12:43:56 -04:00
Francis Lachapelle c99170b9bc fix(mail): pick proper "from" address when replying/forwarding
Fixes #5056
2020-07-06 12:43:55 -04:00
Extra Fu 2f75c389f7
Merge pull request #275 from the-nic/feat/4895-argon2
feat(core): Support ARGON2I/ARGON2ID password hashes
2020-07-03 14:44:20 -04:00
Francis Lachapelle 2545caf2e5 fix(mail(css)): add explicit expanded/collapsed mailbox status 2020-07-02 17:24:51 -04:00
Francis Lachapelle b8595d7ae6 fix(calendar): return SOGoUser instances when expanding LDAP groups
Fixes #5043
2020-07-01 16:58:16 -04:00
Nicolas Höft 4c27826fb5 feat(core): Support ARGON2I/ARGON2ID password hashes
Requires libsodium ≥ 1.0.9 to be present at compile time.

Thus, the following distributions will have support for at least
ARGON2i:

* rhel ≥ 7 (with EPEL enabled)
* Debian ≥ 9 (stretch)
* Ubuntu ≥ Bionic (18.04)

Fixes #4895
2020-07-01 11:20:31 +02:00
Ludovic Marcotte 2be7bab3ed fix(core): avoid fetching quick records for non-existant users 2020-06-30 13:22:17 -04:00
Francis Lachapelle 11bbdee143 feat(mail): handle multiple mail identities
If no custom identity exists, initialize the mail identities of the user
with all the user's email addresses (extracted from MailFieldNames).

For this code path to be executed, the user must not have any of the
following defaults keys:

  SOGoMailIdentities
  SOGoMailCustomFullName
  SOGoMailCustomEmail
  SOGoMailReplyTo
  SOGoMailSignature

Fixes #768, fixes #4602
2020-06-26 15:28:33 -04:00
Johannes Kanefendt 5da8f1872b Use zip_error_strerror and zip_discard if available 2020-06-23 18:06:10 +02:00
Francis Lachapelle 7494bb3ae6 fix(preferences): improve handling of forward addresses
Fixes #5053
2020-06-22 17:12:05 -04:00
Ludovic Marcotte f6a4dfcd04 fix(core): never use zip_error_init_with_code 2020-06-19 12:28:50 -04:00
Ludovic Marcotte 1389dcfe6b fix(core): no need to call zip_discard, it's handled in zip_close 2020-06-19 11:37:36 -04:00
Ludovic Marcotte 67f5e5e490 fix(core): second pass at libzip compat 2020-06-19 11:30:42 -04:00
Ludovic Marcotte 3c4b1af3ba fix(core): initial compat work on libzip 2020-06-19 11:07:07 -04:00
Francis Lachapelle f8aa338e64 feat(mail): handle multiple mail identities
Fixes #768, fixes #4602
2020-06-18 16:53:42 -04:00
Francis Lachapelle d39208efa0 fix(core): fix compilation of pkcs5_pbkdf2.c 2020-06-16 11:54:19 -04:00
Extra Fu 0094d65bb9
Merge pull request #276 from the-nic/feat/pbkdf2
feat(core): Add PBKDF2 support
2020-06-12 14:13:23 -04:00
Ludovic Marcotte 0e95de31cf fix(core): fixed linked and packaging for zip->libzip work 2020-06-12 14:09:33 -04:00
Extra Fu 04673e4673
Merge pull request #281 from jkanefendt/use-libzip
Use libzip API instead of zip command line tool for creating zip archives
2020-06-12 14:00:20 -04:00
Ludovic Marcotte 6ec002f023 fix(core): always set the charset when sending IMIP replies 2020-06-12 08:42:00 -04:00
Francis Lachapelle cddfac82dd Revert "Revert "Revert "fix(core): added back instance caching for LDAP members"""
This reverts commit 056004bca1.
2020-06-09 15:15:06 -04:00
Francis Lachapelle cb08abfa67 Revert "fix(core): avoid caching group members per instance"
This reverts commit 0ff0d43e1e.
2020-06-09 15:14:47 -04:00
Nicolas 27840093f5
feat(core): add lookupFields attribute in LDAP source
This field allows for looking up attributes not returned with the
default query, such as operational attributes.

Fixes #568

Co-authored-by: Skrupellos <skruppy@onmars.eu>
2020-06-09 11:52:07 -04:00
Johannes Kanefendt 9534816a21 Fixed some header comments 2020-06-09 13:55:08 +02:00
Johannes Kanefendt b951c72451 Use libzip API for creating ZIP archives instead of zip command line tool 2020-06-09 13:50:29 +02:00
Ludovic Marcotte 0ff0d43e1e fix(core): avoid caching group members per instance 2020-06-08 10:26:33 -04:00
Ludovic Marcotte 056004bca1 Revert "Revert "fix(core): added back instance caching for LDAP members""
This reverts commit ca5df1a153.
2020-06-08 09:53:44 -04:00
Francis Lachapelle ca5df1a153 Revert "fix(core): added back instance caching for LDAP members"
This reverts commit b94175cc0c.
2020-06-04 16:13:45 -04:00
Ludovic Marcotte b94175cc0c fix(core): added back instance caching for LDAP members 2020-06-03 14:53:26 -04:00
Ludovic Marcotte 9f55cdc725 fix(core): added even better debugging for bogus groups 2020-06-03 07:46:57 -04:00
Nicolas Höft fc863bf63f fix: Fix for failing test in NSString+Utilities
The test in TestNSString+Utilities would otherwise fail:

======================================================================
FAIL: test_countOccurrencesOfString (TestNSString+Utilities.m:46)
----------------------------------------------------------------------
assertion failure

Simply leave the loop early if the substring length is zero to
avoid this issue
2020-06-03 08:17:08 +02:00
Nicolas Höft 2e0fc3ca09 feat(core): Add PBKDF2 support
Extend NSData+Crypto to support PBKDF2 with SHA1 HMAC as dovecot
is using it since v2.3.0.

The format hashed passwords is {PBKDF2}$1$<salt>$<rounds>$<hashed value in hex>

The implementation of pkcs#5 PBKDF2 is taken from openbsd (with minor
adjustments) as OpenSSL and GnuTLS would require quite new versions to
support this hash.
2020-06-03 08:17:08 +02:00
Ludovic Marcotte 42587f7422 fix(core): improved debugging on bogus groups 2020-06-02 15:05:54 -04:00
Ludovic Marcotte 105ca88aef fix(core): improve debugging on invalid group sources 2020-05-28 14:02:09 -04:00
Ludovic Marcotte 5b6096e32c fix(core): improve debbuging when dealing with groups 2020-05-26 09:25:25 -04:00
Ludovic Marcotte e37ae5fec5 fix(core): disable ASM version of blowfish on i386 2020-05-21 08:51:56 -04:00
Extra Fu 30c0d8a425
Merge pull request #272 from the-nic/feat/blowfish
Add BLF-CRYPT password scheme support
2020-05-15 19:12:44 -04:00
Nicolas Höft 789b55c274 NSData+Crypto: add password verification function
This will allow for using specific verification, depending on the
scheme.
2020-05-15 22:53:15 +02:00
Ludovic Marcotte 798ad1502c fix(core): adjust syntax for Python > 2 2020-05-15 12:45:20 -04:00
Nicolas Höft c3a4f4aeb4 fix(core): NSData+String: Simplify generateSalt function
Instead of converting binary data to base64 in order to get printable
data, use a white list of characters allowed and select from those.

This also makes sure we will get the right amount of characters as
requested, not potentially longer strings.
2020-05-15 07:43:38 +02:00
Nicolas Höft 8c612fc0a2 feat(core): Add BLF-CRYPT scheme.
Dovecot promotes the use of BLF-CRYPT as a hashing scheme [1].
However, as not all libc-crypt() implementations support this scheme,
use the implementation added in a previous commit.

Also, update the references to the dovecot implementation and a small
test case for testing the blowfish implementation.

[1] https://doc.dovecot.org/configuration_manual/authentication/password_schemes/

Fixes #4958
2020-05-15 07:43:38 +02:00
Nicolas Höft 562f81f21f fix(core): NSData+String: Dont mix tabs and spaces 2020-05-15 07:43:38 +02:00
Nicolas Höft 3040c275d8 feat(core): Add blowfish implementation from openwall
Using version 1.3, see https://www.openwall.com/crypt/
2020-05-15 07:43:38 +02:00
Nicolas Höft 589cfaa2f4 feat(core): Support smtps and STARTTLS for SMTP
Support uri schemes for SMTP, enabling STARTTLS and SMTPS for SMTP
connections.

The new format for configuration value SMTPServer supports passing a
URI scheme (either smtp:// or smtps://). To support old configurations,
if no scheme is given, smtp:// is assumed.

Fixes #31
2020-05-14 08:47:05 +02:00
Ludovic Marcotte f78300a12e feat(core): initial Google Authenticator support for 2FA 2020-05-07 07:22:24 -04:00
Francis Lachapelle 7b5c787718 fix(core): LDAP group expansion must use all user sources 2020-05-05 12:18:37 -04:00
Francis Lachapelle 5da7903ce1 chore(tool): fallback to NGImap4ConnectionStringSeparator
When using a master user to update the Sieve scripts through sogo-tool,
we may not be able to detect the IMAP delimiter. Therefore, we must
fallback to the default NGImap4ConnectionStringSeparator.

Fixes #4919
2020-05-05 10:53:02 -04:00
Francis Lachapelle 8f7b2bfbed fix(core): LDAP group expansion must use all user sources 2020-05-04 12:25:16 -04:00
Francis Lachapelle a4c51a90bb Remove reference to SOGoGroup.h 2020-04-17 15:16:23 -04:00
Francis Lachapelle 979e1342c7 docs: fix wrong default values for MailComposeMessageType and LoginModule
Fixes #4992
2020-04-06 15:38:45 -04:00
Francis Lachapelle 6af0058657 fix(calendar): use the calendar owner when generating freebusy information 2020-04-03 12:18:16 -04:00
Extra Fu 62823815a7
Merge pull request #263 from jkanefendt/revise-group-expansion
Revision of the group member expansion interface
2020-04-02 09:52:21 -04:00
Francis Lachapelle de5da7bd0d i18n(ro_RO): update Romanian translation 2020-03-09 11:13:19 -04:00
Ludovic Marcotte 78292495bb fix(calendar(core)): check for array size before looking into 2020-02-27 14:46:21 -05:00
Francis Lachapelle 5e1f487e49 fix(calendar): fix first range of "busy off hours" in vFreeBusy response 2020-02-21 10:37:58 -05:00
root 57bbb255cc fix(calendar): fallback to tz found in ics 2020-01-29 22:18:29 +01:00
Francis Lachapelle 560c1dcd82 fix(calendar): adjust recurrent rule when importing a vEvent 2020-01-20 12:03:34 -05:00
Francis Lachapelle 62f64314c0 fix(mail): fix SMTP authentication when reporting spam/ham
Fixes #4941
2020-01-17 09:53:16 -05:00
Francis Lachapelle d8fab6bb21 fix(calendar): restore [SOGoAppointmentObject resourceHasAutoAccepted]
Fixes #4923
2020-01-16 10:43:42 -05:00
Ludovic Marcotte f0980a9cbd feat(core): Added AES-128-CBC password scheme for SQL authentication.
This allows SOGo to use Plesk's database as an authentication source.
2020-01-06 15:47:47 -05:00
Francis Lachapelle 91ca8b8bec fix(calendar): restore [SOGoAppointmentObject resourceHasAutoAccepted]
This method is used for ActiveSync support.

Fixes #4923
2020-01-06 09:41:49 -05:00
Francis Lachapelle c1ccbae316 style(obj-c): replace tabs by spaces 2019-12-17 11:15:50 -05:00
Francis Lachapelle cd8f957774 i18n(cs): update Czech translation 2019-12-17 11:10:40 -05:00
Francis Lachapelle 7180b5988d fix(preferences): improve error handling with Sieve server 2019-12-16 14:54:03 -05:00
Francis Lachapelle 15d7c69d94 fix(calendar): adjust invalid dates when importing a vEvent
Fixes #4845
2019-12-16 10:48:26 -05:00
Francis Lachapelle 2e46e89d58 refactor: replace calls to create GMT NSTimeZone instance 2019-12-09 08:50:50 -05:00
Johannes Kanefendt 948c89f5bb - Respect the user domain when dealing with groups
- Renamed protocol MembershipAwareSource to SOGoMembershipSource
2019-12-04 10:37:08 +01:00
Francis Lachapelle 5923639154 fix(calendar): raise warning when MuiltipleBookings is set to -1 2019-12-03 16:42:36 -05:00
Francis Lachapelle 3bb40e4024 fix(calendar): adjust invalid dates when importing a vEvent
Fixes #4845
2019-11-27 17:00:28 -05:00
Johannes Kanefendt 278d4ab4cb Return NSDictionary contact entries from [MembershipAwareSource membersForGroupWithUID] instead of SOGoUser objects.
Optimization for user sources that are capable of fetching lists of group members at once, might save a lot of expensive SOGoUser lookups.
2019-11-26 22:20:28 +01:00
Johannes Kanefendt 2e98929900 Removed tight coupling of group membership expansion and LDAPSource.
Any implementation of SOGoSource may now support group expansion by implementing the protocol MembershipAwareSource.
2019-11-26 15:29:02 +01:00
Francis Lachapelle 5b3d84ee24 refactor(preferences): conditionally activate the Sieve script
All the user defaults are now editable through the Preferences module,
even if an external Sieve script is enabled. However, the user can
disable the external Sieve script and force the activation of the
"sogo" Sieve script.
2019-11-15 14:37:35 -05:00
Ludovic Marcotte 2bc24eca82 fix(core): don't disable the current script if we aren't doing anything 2019-11-07 15:27:43 -05:00
Ludovic Marcotte 3a8336484c chore(core): removed NSLog calls 2019-11-07 08:17:35 -05:00
Ludovic Marcotte 4475ac651d feat(core): allow pre/appended Sieve scripts
Allow domain admins to now set Sieve scripts that can be prepended
and appended to all users' scripts. This can now be controller
using the SOGoSieveScriptHeaderTemplateFile and
SOGoSieveScriptFooterTemplateFile domain defaults.
2019-11-06 14:53:30 -05:00
Ludovic Marcotte c2e7f6a866 feat(preferences): allow hiding of vacation the vacation period
This is controllable using the new SOGoVacationPeriodEnabled
domain defaults variable.
2019-11-05 15:33:16 -05:00
Ludovic Marcotte e866fd5fda (fix) fixed Apple Calendar creation (fixes #4813) 2019-10-28 14:39:39 -04:00
Ludovic Marcotte 7ff9921709 (fix) removed unused method 2019-10-25 13:34:41 -04:00
Ludovic Marcotte 34fcfe024b (fix) use the supplied Sieve creds to fetch the IMAP4 separator (fixes #4846) 2019-10-25 13:32:52 -04:00
Francis Lachapelle 8366878932 (i18n) Update translations 2019-10-23 12:54:32 -04:00
Francis Lachapelle 85e61ecc1b Add missing contact fields for sorting
Fixes #4799
2019-10-21 15:32:13 -04:00
Francis Lachapelle 9cda34a65f Fix handling of SENT-BY addresses
Fixes #4583
2019-10-02 10:45:37 -04:00
Francis Lachapelle 5b818e8ea9 Fix behaviour of SOGoMailKeepDraftsAfterSend
Fixes #4830
2019-09-27 09:48:58 -04:00
Francis Lachapelle 0de722d8f4 Set default Sieve port to 4190
Fixes #4826
2019-09-25 10:54:35 -04:00
Ludovic Marcotte 1ee23a6bec (fix) make sure we handle events occurring after RRULE's UNTIL date 2019-09-12 10:23:51 -04:00
Ludovic Marcotte 1e0bea5988 (fix) also include the summary in major changes 2019-09-09 13:38:41 -04:00
Francis Lachapelle 25021c192c New paramter SOGoLDAPGroupExpansionEnabled
Fixes #2506
2019-09-05 12:42:25 -04:00