Commit graph

3553 commits

Author SHA1 Message Date
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
Ludovic Marcotte 3187bca0ef (fix) now dynamically detect and use the IMAP separator (fixes #1490) 2019-09-04 13:45:53 -04:00
Ludovic Marcotte e4ad088f0d (fix) avoid exceptions for RRULE with no DTSTART 2019-09-03 13:34:35 -04:00
Ludovic Marcotte 1aa0d012cd (fix) honor "any authenticated user" when setting IMAP ACLs 2019-08-29 11:06:13 -04:00
Ludovic Marcotte 0cbb8ea9eb (fix) honor groups when setting IMAP ACLs 2019-08-29 10:46:13 -04:00
Ludovic Marcotte 4df69587a2 (fix) honor IMAPLoginFieldName also when setting IMAP ACLs 2019-08-23 13:45:44 -04:00
Ludovic Marcotte b68c9bd302 (fix) silence log call 2019-08-23 08:46:27 -04:00
Francis Lachapelle d8d3c88e98 Fix events search when targeting recurrent events 2019-08-19 16:47:37 -04:00
Ludovic Marcotte 676d2e6790 (feat) added support for S/MIME opaque signing (fixes #4582) 2019-08-19 10:37:15 -04:00
Ludovic Marcotte 8c77145b9f (fix) avoid warning 2019-08-15 15:54:48 -04:00
Ludovic Marcotte 3e2af3a16e (fix) defined correct method signature 2019-08-15 15:53:40 -04:00
Ludovic Marcotte 04f91b8948 (feat) now possible to specify which domains you can forward your mails to 2019-08-15 12:48:53 -04:00
Nicolas Höft f7f0af67d8 (fix) Fix SIGSEGV and compilation due to missing include crypt.h
When building on debian buster, the following warning occurs during
compiling:

    NSData+Crypto.m: In function ‘-[NSData(SOGoCryptoExtension) _asCryptedUsingSalt:magic:]’:
    NSData+Crypto.m:610:9: warning: implicit declaration of function ‘crypt’; did you mean ‘creat’? [-Wimplicit-function-declaration]
       buf = crypt([cryptString UTF8String], [saltString UTF8String]);
             ^~~~~
             creat
    NSData+Crypto.m:610:7: warning: assignment to ‘char *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
       buf = crypt([cryptString UTF8String], [saltString UTF8String]);
           ^
    NSData+Crypto.m: In function ‘-[NSData(SOGoCryptoExtension) asCryptUsingSalt:]’:
    NSData+Crypto.m:674:7: warning: assignment to ‘char *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
       buf = crypt([cryptString UTF8String], [saltString UTF8String]);
           ^
     Creating derived_src/NSFramework_SOGo.m..

This warning is apparently more severe as it may also cause segfaults
(at least on Debian Buster) when logging in, rendering sogo unusable:

    2019-07-21 11:27:55.623 sogod[16074:16074] MySQL4 connection established 0x0x55e6b9e56f40
    2019-07-21 11:27:55.624 sogod[16074:16074] MySQL4 channel 0x0x55e6b9aa41f0 opened (connection=0x0x55e6b9e56f40,sogo)
    2019-07-21 11:27:55.624 sogod[16074:16074] <MySQL4Channel[0x0x55e6b9aa41f0] connection=0x0x55e6b9e56f40> SQL: SELECT c_password FROM sogo_userview WHERE c_uid = 'xxxx';
    2019-07-21 11:27:55.625 sogod[16074:16074] <MySQL4Channel[0x0x55e6b9aa41f0] connection=0x0x55e6b9e56f40>   query has results, entering fetch-mode.
    Jul 21 11:27:56 sogod [16057]: <0x0x55e6b9a56020[WOWatchDogChild]> child 16074 exited
    Jul 21 11:27:56 sogod [16057]: <0x0x55e6b9a56020[WOWatchDogChild]>  (terminated due to signal 11)
    Jul 21 11:27:56 sogod [16057]: <0x0x55e6b992b360[WOWatchDog]> child spawned with pid 16268

The reason for this segfault is likely the implicit conversion to int,
leading to uninitialized higher bits of the pointer passed to NSData.
2019-07-21 12:00:21 +02:00
Francis Lachapelle 8b6b9d80af (i18n) Update translations 2019-07-19 12:50:18 -04:00
Francis Lachapelle 60247e83e7 (i18n) Update German translation 2019-07-09 16:15:37 -04:00
Francis Lachapelle e24082183f Reflect attendee type with generic icon 2019-07-04 15:10:41 -04:00
Francis Lachapelle a746a6b23d (i18n) Update Catalan translation
Fixees #4726
2019-06-17 11:43:43 -04:00
Francis Lachapelle f0c8aa884c (i18n) Add Indonesian (id) translation 2019-06-14 10:58:29 -04:00
Francis Lachapelle 0e918a446a Add rel="noopener" to external links
Fixes #4764
2019-06-10 13:20:44 -04:00
Daniel Carlos Silva 193b73fa26
Update SOGoMailFolder.m 2019-05-23 18:20:10 -03:00
Ludovic Marcotte f57ff86951 (fix) fixed domain placeholder issue when using sogo-tool (fixes #4723) 2019-05-23 15:02:10 -04:00
Ludovic Marcotte 29f5357a2c (fix) added safety checks in S/MIME (fixes #4745) 2019-05-23 09:21:44 -04:00
Ludovic Marcotte 0e038a62fd (fix) improve handling of signer certificate (fixes #4742) 2019-05-08 08:09:14 -04:00
Florian Beier bad69a0f1a Adjust word order
"schrieb" was in the wrong place, it has to go in front of the contact's name
2019-04-12 01:39:48 +02:00
Ludovic Marcotte 96bcbbdc14 (fix) consider DAVx5 like Apple Calendar (fixes #4304) 2019-03-21 14:08:44 -04:00
Francis Lachapelle fcdc4c92c0 Improve URLs/emails detection in text mail parts 2019-03-21 11:01:17 -04:00
Ludovic Marcotte d75fe573b2 (fix) potential fix for #4289 2019-03-18 15:46:39 -04:00
Ludovic Marcotte 0d78d3814c (fix) correctly handle the full cert chain in S/MIME 2019-03-15 13:55:41 -04:00
Ludovic Marcotte 93f344bdbe added missing commit 2019-03-15 13:44:49 -04:00
Ludovic Marcotte 008e901ad6 (fix) we update the baseDN placeholders of all LDAP sources upon login 2019-03-15 13:35:12 -04:00
Francis Lachapelle 47456c9ebd Allow super users to modify any event
Fixes #4216
2019-03-13 09:08:31 -04:00
Francis Lachapelle e456e47147 (i18n) Add missing subject of appointment reminder
Fixes #4656
2019-02-27 09:52:18 -05:00
Francis Lachapelle 36cd54209a (i18n) Update French translation 2019-02-21 09:44:33 -05:00
Ludovic Marcotte 98463f2ff2 (fix) sent messages cannot be replied to their BCC email addresses (fixes #4460) 2019-02-19 14:50:49 -05:00
Ludovic Marcotte dad0be1815 (fix) make sure we keep a pristine version of the baseDN 2019-02-19 13:40:58 -05:00
Ludovic Marcotte bc456dcef8 (fix) fixed bad password login interval (fixes #4664) 2019-02-19 11:59:49 -05:00
Ludovic Marcotte 7c3df9f650 (fix) changes to contacts are now propagated to lists (fixes #850, #4301, #4617) 2019-02-18 15:27:34 -05:00
Ludovic Marcotte 15c6074907 (fix) correctly handle event ownership when accepting invitations 2019-02-14 11:19:58 -05:00
Ludovic Marcotte d908468442 (fix) dynamic basdDN support for the top-level SOGoUserSources 2019-02-14 09:48:03 -05:00
Ludovic Marcotte aaf4166c44 (fix) handle role change during event updates 2019-02-07 14:10:39 -05:00
Ludovic Marcotte 249671543e (feat) we now handle optional and non-required attendee states 2019-02-04 11:52:26 -05:00
Ludovic Marcotte d9943e559f (feat) baseDN now accept dynamic domain values (fixes #3685) 2019-02-04 07:37:56 -05:00
Francis Lachapelle 9a8415c095 Fix refresh of drafts folder when saving a draft 2019-01-21 16:24:07 -05:00
Francis Lachapelle 24a30b688f Ignore transparent events in conflict validation
Fixes #4539
2019-01-15 17:12:14 -05:00
Francis Lachapelle ce285ac8fd (i18n) Update BrazilianPortuguese translation 2019-01-08 15:49:46 -05:00
Francis Lachapelle cc9df8e24f (i18n) Update translations 2018-12-21 21:34:27 -05:00
Francis Lachapelle c96a99ae69 Fix download of HTML body parts 2018-12-10 16:05:12 -05:00
Francis Lachapelle 3cd9d82e16 (i18n) Update BrazilianPortuguese translation
Fixes #4590
2018-11-22 10:52:55 -05:00
Ludovic Marcotte 8734ee7486 (fix) be a bit more verbose when session is expired 2018-11-09 13:50:13 -05:00
Francis Lachapelle 36cb0e65d9 (i18n) Update Portuguese translation 2018-10-23 15:03:35 -04:00
Francis Lachapelle 35ea86557c Fix time conflict validation when not owner 2018-10-22 12:11:08 -04:00
Francis Lachapelle 59c3bdc242 Fix time conflict validation 2018-10-22 11:20:06 -04:00
Ludovic Marcotte 995ccb2b73 (fix) avoid saving non-parsable events/tasks 2018-10-09 14:47:22 -04:00
Francis Lachapelle 398ef4dcde Fix time conflict validation
Fixes #4539
2018-09-13 15:56:31 -04:00
Francis Lachapelle a7c88597c6 Fix email reminders support for tasks 2018-09-13 14:56:44 -04:00
Francis Lachapelle 563a2cd9df Fix behaviour of return receipt actions 2018-09-13 10:05:17 -04:00
Francis Lachapelle 9ddb65a07a New button to reset Calendar categories
Also added default colors to categories.
2018-09-07 21:38:31 -04:00
Francis Lachapelle 9838c369b2 Update comment in SOGoAppointmentObject.m 2018-09-07 15:26:36 -04:00
Francis Lachapelle 3bdd90e2be Don't allow duplicate GCS folder names 2018-08-30 22:09:17 -04:00
Francis Lachapelle b658faa8f2 Fix support for SOGoMaximumMessageSizeLimit 2018-08-29 11:28:08 -04:00
Francis Lachapelle 9f654d223b Fix saving task with reminder related to due date 2018-08-22 14:08:54 -04:00
Francis Lachapelle 828d773b49 Add security flags to cookies (HttpOnly, secure)
Fixes #4525
2018-08-21 14:02:01 -04:00
Francis Lachapelle 6020f6ae83 (i18n) Add Romanian (ro) translation 2018-07-30 12:05:14 -04:00
Ludovic Marcotte 396755fffb (fix) handle multi-valued mozillasecondemail attribute mapping 2018-07-20 09:44:20 -04:00
Francis Lachapelle 120f1280a4 Use matching recipient address when replying
Fixes #4495
2018-07-09 15:49:36 -04:00
Francis Lachapelle c4c1de771c Minor code improvement in SQLSource.m 2018-07-06 12:40:43 -04:00
Francis Lachapelle 3eb01aef71 System address is the first user's addresses
In the preferences module, we don't save the user's custom email address
when it matches the system address. This address was considered the last
of all the user's email addresses, which is first, not intuitive, and
second, incorrect when composing a message since the first address is
used by default.

Fixes #3551
2018-07-06 10:28:22 -04:00
Francis Lachapelle 7bd4173388 Revert "Debugging output for subscription issue"
This reverts commit a0582c7e1e.
2018-06-27 15:39:19 -04:00
Francis Lachapelle 213ef0efb5 Revert "Debugging output for subscription issue"
This reverts commit 82d992fc67.
2018-06-27 15:39:18 -04:00
Francis Lachapelle 5fe44b2029 Revert "Debugging output for subscription issue"
This reverts commit fc6aafe4a6.
2018-06-27 15:39:16 -04:00
Francis Lachapelle b6ee4ee0db Revert "Debugging output for subscription issue"
This reverts commit c6e11606e9.
2018-06-27 15:39:14 -04:00
Francis Lachapelle aa41e6d868 Revert "Debugging output for subscription issue"
This reverts commit e33ec4e396.
2018-06-27 15:39:06 -04:00
Francis Lachapelle 821c846864 Revert "Debugging output for subscription issue" 2018-06-27 15:39:02 -04:00
Ludovic Marcotte a257607a06 (fix) make sure we don't try to encrypt a mail for the Sent folder without cert in place 2018-06-22 11:53:46 -04:00
Ludovic Marcotte 00be330915 (fix) fixed S/MIME code with chained certificates 2018-06-22 08:43:29 -04:00
Francis Lachapelle 93629c7751 Fix delete of occurence in attendees calendars 2018-06-18 09:50:24 -04:00
Francis Lachapelle ef000c2ed1 Debugging output for subscription issue 2018-06-04 10:20:51 -04:00
Francis Lachapelle 0149d7400d (i18n) Add Japanese (ja) translation 2018-06-01 13:22:10 -04:00
Francis Lachapelle e33ec4e396 Debugging output for subscription issue 2018-05-30 12:01:08 -04:00
Francis Lachapelle c6e11606e9 Debugging output for subscription issue 2018-05-28 10:50:54 -04:00
Francis Lachapelle fc6aafe4a6 Debugging output for subscription issue 2018-05-25 08:49:34 -04:00
Francis Lachapelle 82d992fc67 Debugging output for subscription issue 2018-05-24 16:15:33 -04:00
Francis Lachapelle a0582c7e1e Debugging output for subscription issue 2018-05-18 11:19:18 -04:00
Francis Lachapelle 0c5b5446dd Remove invalid occurrences when saving master 2018-05-16 14:58:04 -04:00
Francis Lachapelle 3cadcaf4eb Fix sorting of contacts with nil values 2018-05-16 10:10:43 -04:00
Ludovic Marcotte b0e59f9ac9 Revert "(fix) make sure to use crypt as the scheme for md5/sha256/sha512 (fixes #4137)"
This reverts commit 63cb80142b.
2018-04-27 08:55:13 -04:00
Ludovic Marcotte a601ed47d8 (fix) properly update the last-modified attribute (fixes #4313) 2018-03-15 15:43:26 -04:00
Francis Lachapelle 190fa0c77e (i18n) Update translations 2018-03-07 10:49:58 -05:00
Francis Lachapelle d3b10730e9 (i18n) Update translations
Fixes #4372
2018-02-12 14:54:18 -05:00
Francis Lachapelle bccce4022e Identation + comments 2018-02-06 16:20:20 -05:00
Francis Lachapelle 9fddc66007 (i18n) Update translations
Fixes #4372
2018-02-06 10:28:29 -05:00
Francis Lachapelle 23d0b68e57 Add missing subject to junk/not junk mail reports 2018-01-24 16:21:55 -05:00
Francis Lachapelle f88b46c78f (fix) Keep remote images when composing a HTML msg 2018-01-24 16:00:19 -05:00
Francis Lachapelle 7ebdac5525 Improve display of S/MIME certificates 2018-01-23 13:30:56 -05:00
Ludovic Marcotte 511aa63a34 (fix) remaining S/MIME fixes to handle image/CIDs in HTML mails 2018-01-23 10:35:46 -05:00
Francis Lachapelle d80f2462f0 (fix) Message signature detection 2018-01-19 13:46:19 -05:00
Francis Lachapelle b8812d64e8 (fix) Automatic certificate update in Address book 2018-01-19 13:33:02 -05:00
Francis Lachapelle b8c20b24e5 (fix) Message signature detection 2018-01-19 13:31:05 -05:00
Ludovic Marcotte e1cb7f385f (fix) moved the logic for certificate retrieval 2018-01-19 10:10:04 -05:00
Francis Lachapelle 15de264967 Web-based management of email certificate (cont'd) 2018-01-12 14:47:31 -05:00
Ludovic Marcotte 5767419554 (fix) find the proper container (fixes #4371) 2018-01-11 11:10:35 -05:00