Compare commits

...

30 Commits

Author SHA1 Message Date
Daniel Berteaud
6a1c1918c8 On SME8, smeserver-doivecot isn't always installed
Make sure it is before enabling CAS Auth
2015-03-05 11:09:36 +01:00
Daniel Berteaud
fdb0e674eb Put iPasserelle logo in the correct dir 2015-03-05 11:07:31 +01:00
Daniel Berteaud
e3dcad4d3f Update Login page wox template 2015-03-05 11:07:22 +01:00
Daniel Berteaud
ac2c7a77d8 Add an Authentication prop to use SOGo's internal auth 2015-03-05 11:07:08 +01:00
Daniel Berteaud
3e0d7357b7 Spec file update 2015-02-18 12:36:04 +01:00
Daniel Berteaud
76b0386706 Allow EAS push 2015-02-18 11:23:36 +01:00
Daniel Berteaud
b876834c3a Spec file update 2015-02-17 17:02:13 +01:00
Daniel Berteaud
491a2d89b3 Increase memcached cache duration to 2 hours
And completly disable dovecot's negative cache
2015-02-17 17:01:21 +01:00
Daniel Berteaud
241c7d308b Spec file update 2015-02-17 16:56:59 +01:00
Daniel Berteaud
e0e9b06fbb Add %w to cache_key (dovecot's passdb args)
This way, concurrent SOGo sessions using different PT can work
2015-02-17 16:54:07 +01:00
Daniel Berteaud
114e1faa7e Spec file update 2015-01-21 15:06:09 +01:00
Daniel Berteaud
854b7c8369 Dovecot ttl are in seconds 2015-01-21 15:01:33 +01:00
Daniel Berteaud
507b51ee6c Spec file update 2015-01-21 12:27:42 +01:00
Daniel Berteaud
1c71b9f397 Make auth cache last as long as sogo's memcached 2015-01-21 10:32:17 +01:00
Daniel Berteaud
9f6d6025c8 Spec file update 2015-01-07 17:49:16 +01:00
Daniel Berteaud
49cd48d351 Enable IMAP Pooling to reduce auth against the imap backend 2015-01-07 17:25:41 +01:00
Daniel Berteaud
b244230ee7 Enable dovecot auth cache 2015-01-07 17:24:51 +01:00
Daniel Berteaud
b91ebb31c4 Spec file update 2014-09-11 09:38:53 +02:00
Daniel Berteaud
1cde28991c Update refresh parameter for SOGo 2.2.8 2014-09-11 09:31:21 +02:00
Daniel Berteaud
a498a1472a Spec file update 2014-06-25 14:06:23 +02:00
Daniel Berteaud
de0b407a0a Use sogo-tool to expire session 2014-06-25 14:04:52 +02:00
Daniel Berteaud
112a8de6d5 Spec file update 2014-02-25 11:03:28 +01:00
Daniel Berteaud
ab50b12913 Fix an AliasMatch directive in httpd.conf template 2014-02-25 10:36:01 +01:00
Daniel Berteaud
42e6d8108c Add a default reminder 15 minutes before appointments 2014-02-25 09:52:26 +01:00
Daniel Berteaud
98bef056f1 Optionaly enable ActiveSync support (default is disabled) 2014-02-25 09:46:53 +01:00
Daniel Berteaud
ef44d66c98 Spec file update 2013-12-20 14:20:57 +01:00
Daniel Berteaud
c8237a1b31 Remove EMailAlarm option, and force it to disabled, it's not working 2013-12-20 14:06:16 +01:00
Daniel Berteaud
a541bc2d1b Spec file update 2013-12-12 11:51:46 +01:00
Daniel Berteaud
6c20664e56 Template /etc/sogo/sogo.conf instead of /var/lib/sogo/GNUstep/Defaults/.GNUstepDefaults 2013-12-12 10:41:10 +01:00
Daniel Berteaud
60dd598d15 update the spec file 2013-11-12 13:31:12 +01:00
36 changed files with 118 additions and 50 deletions

View File

@ -6,8 +6,7 @@ service_link_enhanced("memcached-sogo", "S55", "7");
service_link_enhanced("sogod", "S85", "7");
templates2events("/etc/e-smith/sql/init/sogo", qw(email-update bootstrap-console-save));
templates2events("/etc/cron.d/sogo-alarm", qw(email-update bootstrap-console-save));
templates2events("/var/lib/sogo/GNUstep/Defaults/.GNUstepDefaults", qw(email-update bootstrap-console-save pre-backup));
templates2events("/etc/sogo/sogo.conf", qw(email-update bootstrap-console-save pre-backup));
templates2events("/etc/sysconfig/sogo", qw(email-update bootstrap-console-save));
templates2events("/etc/logrotate.d/sogo", qw(email-update bootstrap-console-save));
templates2events("/etc/pam.d/dovecot", qw(email-update bootstrap-console-save));

View File

@ -1,4 +1,4 @@
%define version 0.2.13
%define version 0.2.25
%define release 1
%define name ipasserelle-groupware
%define debug_package %{nil}
@ -12,15 +12,15 @@ License: GPLv3+
URL: http://www.ipasserelle.com
Source0: %{name}-%{version}.tar.gz
BuildArch: noarch
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
BuildRoot: /var/tmp/%{name}-%{version}-%{release}-buildroot
BuildRequires: e-smith-devtools
BuildRequires: gcc
Requires: smeserver-release >= 8
Requires: e-smith-ldap >= 5.2.0-19
Requires: sogo >= 2.0.4b
Requires: sogo >= 2.2.0
Requires: sogo-tool
Requires: sogo-activesync
Requires: sope49-gdl1-mysql
Requires: sogo-ealarms-notify
Requires: ipasserelle-base
@ -37,8 +37,47 @@ Provides: smeserver-sogo
iPasserelle module for the groupware application.
Based on smeserver-sogo from nethesis
%changelog
* Wed Feb 18 2015 Daniel Berteaud <daniel@firewall-services.com> - 0.2.25-1
- Allow EAS push
* Tue Feb 17 2015 Daniel Berteaud <daniel@firewall-services.com> - 0.2.24-1
- Increase memcached duration to 2 hours
- Completly disable dovecot's negative cache
* Tue Feb 17 2015 Daniel Berteaud <daniel@firewall-services.com> - 0.2.23-1
- Fix slow access when logged in from different browsers at the same time
* Wed Jan 21 2015 Daniel Berteaud <daniel@firewall-services.com> - 0.2.22-1
- Dovecot ttl are in seconds
* Wed Jan 21 2015 Daniel Berteaud <daniel@firewall-services.com> - 0.2.21-1
- Make dovecot's auth_cache last as long as sogo's memcached
* Wed Jan 7 2015 Daniel Berteaud <daniel@firewall-services.com> - 0.2.20-1
- Enable dovecot auth_cache
- Enable IMAP pooling to reduce auth against dovecot
* Thu Sep 11 2014 Daniel Berteaud <daniel@firewall-services.com> - 0.2.19-1
- Update refresh param for SOGo 2.2.8
* Wed Jun 25 2014 Daniel Berteaud <daniel@firewall-services.com> - 0.2.18-1
- Use sogo-tool to expire sessions
* Tue Feb 25 2014 Daniel Berteaud <daniel@firewall-services.com> - 0.2.17-1
- Add optional support for ActiveSync (default is disabled)
- Add a default reminder 15 minutes before appointments
- Fix an AliasMatch directive in httpd.conf template
* Fri Dec 20 2013 Daniel Berteaud <daniel@firewall-services.com> - 0.2.16-1
- Remove EMailAlarm option
* Thu Dec 12 2013 Daniel Berteaud <daniel@firewall-services.com> - 0.2.15-1
- Template /etc/sogo/sogo.conf instead of /var/lib/sogo/GNUstep/Defaults/.GNUstepDefaults
* Tue Nov 12 2013 Daniel Berteaud <daniel@firewall-services.com> - 0.2.14-1
- Do not compile for noarch as we now have C code to compile
* Mon Sep 30 2013 Daniel Berteaud <daniel@firewall-services.com> - 0.2.13-1
- Increase Cache Cleanup interval

View File

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -1,7 +1,6 @@
#!/bin/bash
TIME=$(/sbin/e-smith/db configuration getprop sogod SessionDuration || echo 1440)
TIME=$(($TIME*60))
# Remove old SOGo sessions entries
/usr/bin/mysql sogo -e "delete from sogo_sessions_folder where unix_timestamp(now())-c_lastseen > $TIME;"
su -l -s /bin/bash sogo -c "/usr/sbin/sogo-tool expire-sessions $TIME"

View File

@ -0,0 +1 @@
cache_key=%n%r%l%w

View File

@ -0,0 +1,8 @@
{
# Add the plaintext password to the cache key so concurrent sessions
# from SOGo, using different CAS PT can work
my $args = $DB->get_prop('dovecot', 'PassDBArgs');
if ($args && $args eq 'cache_key=%n%r%l'){
$DB->set_prop('dovecot', 'PassDBArgs', 'cache_key=%n%r%l%w');
}
}

View File

@ -4,3 +4,7 @@
if [ $? -eq 0 ]; then
/usr/sbin/usermod -d /var/lib/sogo -m -s /sbin/nologin -c "SOGo daemon" sogo 2>/dev/null
fi
rm -f /var/lib/sogo/GNUstep/Defaults/.GNUstepDefaults
rm -f /etc/cron.d/sogo-alarm

View File

@ -23,14 +23,6 @@
<base>SEND_ACL_MAIL</base>
<trans>Notification des changements de droit d'accès</trans>
</entry>
<entry>
<base>MAIL_ALARM_DESC</base>
<trans>Par défaut, SOGo affiche un pop-up pour vous rappeler vos rendez-vous. Si vous activez cette fonction, les utilisateurs pourront également recevoir un mail de rappel</trans>
</entry>
<entry>
<base>MAIL_ALARM</base>
<trans>Rappel par mail</trans>
</entry>
<entry>
<base>AUX_ACCOUNTS_DESC</base>
<trans>Si cette fonction est activée, les utilisateurs pourront s'abonner à des comptes IMAP externes. Ils pourront ainsi gérer tous leurs comptes emails depuis l'interface web. Souhaitez-vous activer cette fonction ?</trans>

View File

@ -1,7 +0,0 @@
# SOGo Email Alarms
{
if (($sogod{'EMailAlarms'} || 'no') =~ m/^no$/i){
$OUT .= "# Email alarms are disabled\n# ";
}
$OUT .= "* * * * * sogo /usr/sbin/sogo-ealarms-notify\n";
}

View File

@ -0,0 +1,17 @@
{
# Only enable auth cache if SOGo is using CAS
my $sogo_auth = $sogod{'Authentication'} || 'cas';
if (lc $sogo_auth eq 'cas'){
my $size = $dovecot{'AuthCacheSize'} || '5242880';
my $ttl = $dovecot{'AuthCacheTTL'} || '7200';
my $neg_ttl = $dovecot{'AuthCacheNegativeTTL'} || '0';
$OUT .=<<"EOF";
auth_cache_size = $size
auth_cache_ttl = $ttl
auth_cache_negative_ttl = $neg_ttl
EOF
}
else{
$OUT .= "# No auth cache as SOGo doesn't use CAS";
}
}

View File

@ -2,7 +2,8 @@
{
$sogoStatus = $sogod{'status'} || "disabled";
$webmailStatus = $imp{'status'} || "disabled";
my $lib = ( -d '/usr/lib64/GNUstep/SOGo/WebServerResources' ) ? 'lib64':'lib';
$activeSync = $sogod{'ActiveSync'} || 'disabled';
$lib = ( -d '/usr/lib64/GNUstep/SOGo/WebServerResources' ) ? 'lib64':'lib';
$style = $sogod{'WebServerResources'} || '/usr/' . $lib . '/GNUstep/SOGo/WebServerResources/';
$style = '/usr/' . $lib . '/GNUstep/SOGo/WebServerResources/' unless ( -d $style);
$style =~ s#$#/# unless ( $style =~ m#/$# );
@ -20,6 +21,17 @@ ScriptAlias /sogo-cgi-bin /usr/share/SOGo/cgi-bin
ProxyPass /SOGo/casProxy http://localhost/sogo-cgi-bin/cas-proxy-validate
{
if ($activeSync =~ m/^enabled|on|1|yes$/i){
$OUT .=<<"HERE";
ProxyPass /Microsoft-Server-ActiveSync http://127.0.0.1:$sogod{'TCPPort'}/SOGo/Microsoft-Server-ActiveSync retry=60 connectiontimeout=5 timeout=3600
HERE
}
else {
$OUT .= "# ActiveSync is disabled\n";
}
}
ProxyPass /SOGo http://127.0.0.1:{$sogod{'TCPPort'}}/SOGo
ProxyPassReverse /SOGo http://127.0.0.1:{$sogod{'TCPPort'}}/SOGo
SetEnvIf Host (.*) REQUEST_HOST=$1

View File

@ -1,5 +1,6 @@
{
if (-d '/var/service/dovecot'){
my $auth = $sogod{'Authentication'} || 'cas';
if (lc $auth eq 'cas' && -d '/var/service/dovecot'){
$OUT .=<<"HERE";
auth sufficient pam_cas.so -simap://localhost -f/etc/pam_cas.conf
HERE

View File

@ -0,0 +1,2 @@
\{

View File

@ -1,2 +1,2 @@
SOGoMemcachedHost = "/var/run/sogo/memcached.sock";
SOGoCacheCleanupInterval = 1800;
SOGoCacheCleanupInterval = 7200;

View File

@ -3,6 +3,7 @@
SOGoMailingMechanism = smtp;
SOGoSMTPServer = localhost;
SOGoIMAPServer = "imap://localhost:{$imap{'TCPPort'} || '143'}";
NGImap4DisableIMAP4Pooling = NO;
SOGoDraftsFolderName = {($sogod{'DraftsFolder'} || "Drafts")};
SOGoSentFolderName = {($sogod{'SentFolder'} || "Sent")};
SOGoTrashFolderName = {($sogod{'TrashFolder'} || "Trash")};

View File

@ -1,4 +1,4 @@
SOGoEnableEMailAlarms = {uc($sogod{'EMailAlarms'} || "no")};
SOGoEnableEMailAlarms = NO;
SOGoACLsSendEMailNotifications = {uc($sogod{'ACLsSendEMailNotifications'} || "no")};
SOGoAppointmentSendEMailNotifications = YES;
SOGoAppointmentSendEMailReceipts = YES;

View File

@ -0,0 +1,4 @@
SOGoRefreshViewCheck = "every_10_minutes";
SOGoFirstDayOfWeek = "1";
SOGoFirstWeekOfYear = "First4DayWeek";
SOGoCalendarDefaultReminder = "-PT15M";

View File

@ -56,8 +56,8 @@
\}
);
{
# is smeserver-dovecot installed ?
if (-d '/var/service/dovecot'){
my $auth = $sogod{'Authentication'} || 'cas';
if (lc $auth eq 'cas' && -d '/var/service/dovecot'){
$OUT .=<<"HERE";
SOGoAuthenticationType = cas;
SOGoCASServiceURL = "https://auth.$DomainName/cas/";

View File

@ -0,0 +1,12 @@
{
if (($sogod{'ActiveSync'} || 'disabled') eq 'enabled'){
$OUT .=<<'_EOF';
SOGoMaximumPingInterval = 3540;
SOGoMaximumSyncInterval = 3540;
SOGoInternalSyncInterval = 60;
WOWatchDogRequestTimeout = 3600;
_EOF
}
}

View File

@ -0,0 +1 @@
\}

View File

@ -5,6 +5,8 @@ my $a = esmith::AccountsDB->open_ro || die "Couldn't open AccountsDB\n";
my $users = scalar($a->users());
my $fork = int($users/8);
$fork = 3 if ($fork < 3);
my $activeSync = $sogod{'ActiveSync'} || 'disabled';
$fork = $fork*2 if ($activeSync =~ m/^enabled|on|1|yes$/i);
$OUT .= "PREFORK=$fork";

View File

@ -1,5 +0,0 @@
\{
NSGlobalDomain = \{
\};
sogod = \{

View File

@ -1,3 +0,0 @@
SOGoMailMessageCheck = "every_10_minutes";
SOGoFirstDayOfWeek = "1";
SOGoFirstWeekOfYear = "First4DayWeek";

View File

@ -47,12 +47,6 @@ __DATA__
<description>SEND_ACL_MAIL_DESC</description>
<label>SEND_ACL_MAIL</label>
</field>
<field type="select" id="mailAlarm" options="'yes' =>
'YES', 'no' => 'NO'"
value="get_prop('EMailAlarms')">
<description>MAIL_ALARM_DESC</description>
<label>MAIL_ALARM</label>
</field>
<field type="select" id="auxAccounts" options="'yes' =>
'YES', 'no' => 'NO'"
value="get_prop('AuxiliaryUserAccounts')">

View File

@ -107,7 +107,6 @@ sub apply {
$configdb->set_prop('sogod', 'status', $q->param("status"));
$configdb->set_prop('sogod', 'ACLsSendEMailNotifications', $q->param("aclSendMail"));
$configdb->set_prop('sogod', 'EMailAlarms', $q->param("mailAlarm"));
$configdb->set_prop('sogod', 'AuxiliaryUserAccounts', $q->param("auxAccounts"));
$configdb->set_prop('sogod', 'PublicAccess', $q->param("publicAccess"));
$configdb->set_prop('sogod', 'AllowedGroups', join(',', $q->param("allowedGroups")));

View File

@ -33,7 +33,7 @@
<table width="560">
<tr>
<td>
<img const:alt="*" id="splash" rsrc:src="/logo_ipasserelle.png"/>
<img const:alt="*" id="splash" rsrc:src="logo_ipasserelle.png"/>
</td>
<td id="loginCell" width="230">
<label><var:string label:value="Username:"/><br/>
@ -46,7 +46,6 @@
<var:popup const:id="language" const:name="language"
list="languages"
item="item"
var:selection="item"
var:value="item"
string="languageText"
label:noSelectionString="choose"