diff -Nur smeserver-dovecot-1.4.0/createlinks smeserver-dovecot-1.4.0_remove_extras/createlinks --- smeserver-dovecot-1.4.0/createlinks 2013-02-26 18:57:10.000000000 +0100 +++ smeserver-dovecot-1.4.0_remove_extras/createlinks 2013-02-28 17:40:32.186528985 +0100 @@ -20,7 +20,4 @@ event_link("adjust-dovecot", "email-update", "02"); event_link("adjust-dovecot", "bootstrap-console-save", "02"); -event_link("dovecot-acl", "email-update", "85"); -event_link("dovecot-acl", "user-create", "85"); -safe_touch("root/home/e-smith/db/dovecot/sharedmailbox.db"); diff -Nur smeserver-dovecot-1.4.0/root/etc/e-smith/db/configuration/defaults/sieve/access smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/db/configuration/defaults/sieve/access --- smeserver-dovecot-1.4.0/root/etc/e-smith/db/configuration/defaults/sieve/access 2013-02-26 18:57:10.000000000 +0100 +++ smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/db/configuration/defaults/sieve/access 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -private diff -Nur smeserver-dovecot-1.4.0/root/etc/e-smith/db/configuration/defaults/sieve/status smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/db/configuration/defaults/sieve/status --- smeserver-dovecot-1.4.0/root/etc/e-smith/db/configuration/defaults/sieve/status 2013-02-26 18:57:10.000000000 +0100 +++ smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/db/configuration/defaults/sieve/status 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -enabled diff -Nur smeserver-dovecot-1.4.0/root/etc/e-smith/db/configuration/defaults/sieve/TCPPort smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/db/configuration/defaults/sieve/TCPPort --- smeserver-dovecot-1.4.0/root/etc/e-smith/db/configuration/defaults/sieve/TCPPort 2013-02-26 18:57:10.000000000 +0100 +++ smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/db/configuration/defaults/sieve/TCPPort 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -4190 diff -Nur smeserver-dovecot-1.4.0/root/etc/e-smith/db/configuration/defaults/sieve/type smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/db/configuration/defaults/sieve/type --- smeserver-dovecot-1.4.0/root/etc/e-smith/db/configuration/defaults/sieve/type 2013-02-26 18:57:10.000000000 +0100 +++ smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/db/configuration/defaults/sieve/type 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -service diff -Nur smeserver-dovecot-1.4.0/root/etc/e-smith/events/actions/dovecot-acl smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/events/actions/dovecot-acl --- smeserver-dovecot-1.4.0/root/etc/e-smith/events/actions/dovecot-acl 2013-02-26 18:57:10.000000000 +0100 +++ smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/events/actions/dovecot-acl 1970-01-01 01:00:00.000000000 +0100 @@ -1,89 +0,0 @@ -#!/usr/bin/perl -w - - -use esmith::ConfigDB; -use esmith::AccountsDB; -use File::Find; - -my $c = esmith::ConfigDB->open || die "Couldn't open ConfigDB\n"; -my $a = esmith::AccountsDB->open_ro || die "Couldn't open AccountsdDB\n"; - -my $dovecot = $c->get('dovecot'); - -die "couldn't find dovecot service\n" unless ($dovecot); - -my $event = $ARGV[0]; - -# SharedMailboxes disabled ? -if (($dovecot->prop('SharedMailbox') || 'disabled') eq 'disabled'){ - if (($dovecot->prop('SharedMailboxAcl') || 'yes') ne 'no'){ - foreach my $user ($a->users){ - my $name = $user->key; - die "Error removing SharedMailbox ACLs ($name"."'s Maildir)\n" unless ( - system('/usr/bin/setfacl', - '-R', - '-x', - 'g:sharedmailbox', - "/home/e-smith/files/users/$name") == 0 && - system('/bin/chmod', - '-R', - 'g-s', - "/home/e-smith/files/users/$name/Maildir") == 0 - ); - } - } - $dovecot->set_prop('SharedMailboxAcl','no'); - exit(0); -} - -# If SharedMailbox is enabled - -# Set the correct ACL during user creation -if ($event && $event eq 'user-create'){ - my $user = $ARGV[1]; - set_acl($user); -} - -if (($dovecot->prop('SharedMailboxAcl') || 'no') ne 'yes'){ - # ACL for existing users haven't been set yet - foreach my $user ($a->users){ - my $name = $user->key; - set_acl($name); - } - $dovecot->set_prop('SharedMailboxAcl','yes'); -} - -# Set ACL on a user's Maildir -sub set_acl { - my $user = shift; - die "Missing username\n" unless ($user); - die "Couldn't find $user"."'s home dir\n" unless (-e "/home/e-smith/files/users/$user"); - find(\&dirperm, "/home/e-smith/files/users/$user/Maildir"); - die "Error applying permissions to $user 's Maildir\n" unless ( - # sharedmailbox group needs read / write access on Maildir - system('/usr/bin/setfacl', - '-R', - '-m', - 'u::rwX,g::rwX,g:sharedmailbox:rwX,d:u::rwX,d:g::rwX,d:g:sharedmailbox:rwX', - "/home/e-smith/files/users/$user/Maildir") == 0 && - # Grant sharedmailbox group permission to go through - # the home dir so it can access the Maildir, but don't let it read - # anything (except the Maildir) - system('/usr/bin/setfacl', - '-m', - 'g:sharedmailbox:x', - "/home/e-smith/files/users/$user") == 0 - ); -} - -# The kernel will handle group perms when a user -# create a dir in another user's Maildir (if IMAP ACL allows it) -# This will prevent dovecot errors, see -# http://wiki2.dovecot.org/SharedMailboxes/Permissions and -# http://wiki2.dovecot.org/Errors/ChgrpNoPerm -sub dirperm { - system('/bin/chmod', - 'g+s', - "$_") if (-d); -} - diff -Nur smeserver-dovecot-1.4.0/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/10protocols smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/10protocols --- smeserver-dovecot-1.4.0/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/10protocols 2013-02-26 18:57:10.000000000 +0100 +++ smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/10protocols 1970-01-01 01:00:00.000000000 +0100 @@ -1,9 +0,0 @@ -protocols = { - if ((($imap{'status'} || 'disabled') eq 'enabled') || - (($imaps{'status'} || 'disabled') eq 'enabled')){ - $OUT .= "imap"; - } - if (($sieve{'status'} || 'disabled') eq 'enabled'){ - $OUT .= " sieve"; - } -} diff -Nur smeserver-dovecot-1.4.0/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/10protocols10Imap smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/10protocols10Imap --- smeserver-dovecot-1.4.0/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/10protocols10Imap 1970-01-01 01:00:00.000000000 +0100 +++ smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/10protocols10Imap 2013-02-28 17:40:14.950415603 +0100 @@ -0,0 +1,8 @@ +{ +our $proto = ''; +if ((($imap{'status'} || 'disabled') eq 'enabled') || + (($imaps{'status'} || 'disabled') eq 'enabled')){ + $proto .= "imap"; +} +$OUT .= ""; +} diff -Nur smeserver-dovecot-1.4.0/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/11protocols smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/11protocols --- smeserver-dovecot-1.4.0/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/11protocols 1970-01-01 01:00:00.000000000 +0100 +++ smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/11protocols 2013-02-28 17:40:14.446451195 +0100 @@ -0,0 +1 @@ +protocols = {$proto} diff -Nur smeserver-dovecot-1.4.0/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/30listener smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/30listener --- smeserver-dovecot-1.4.0/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/30listener 2013-02-26 18:57:10.000000000 +0100 +++ smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/30listener 2013-02-28 17:40:14.723104393 +0100 @@ -21,19 +21,3 @@ \} -{ -if (($sieve{'status'} || 'enabled') eq 'enabled'){ - my $port = $sieve{'TCPPort'} || '4190'; - my $address = $sieve{'Listen'} || '127.0.0.1'; - $OUT .=<<"HERE"; - -service managesieve-login { - inet_listener sieve { - port = $port - address = $address - } -} - -HERE -} -} diff -Nur smeserver-dovecot-1.4.0/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/40lda smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/40lda --- smeserver-dovecot-1.4.0/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/40lda 2013-02-26 18:57:10.000000000 +0100 +++ smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/40lda 1970-01-01 01:00:00.000000000 +0100 @@ -1,19 +0,0 @@ - -postmaster_address = postmaster@{$DomainName} -lda_original_recipient_header = to - -{ -my $reason = $dovecot{'RejectMessage'} || ''; -my $subject = $dovecot{'RejectSubject'} || ''; -if ($reason ne ''){ - $OUT .= "rejection_reason = $reason\n"; -} -if ($subject ne ''){ - $OUT .= "rejection_subject = $subject\n"; -} -} - -protocol lda \{ - mail_plugins = $mail_plugins {$OUT .= (($sieve{'status'} || 'disabled') eq 'enabled') ? 'sieve':''} -\} - diff -Nur smeserver-dovecot-1.4.0/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/65pluginAcl smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/65pluginAcl --- smeserver-dovecot-1.4.0/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/65pluginAcl 2013-02-26 18:57:10.000000000 +0100 +++ smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/templates/etc/dovecot/dovecot.conf/65pluginAcl 1970-01-01 01:00:00.000000000 +0100 @@ -1,68 +0,0 @@ -{ -return "" if (($dovecot{'SharedMailbox'} || 'disabled') eq 'disabled'); - -push @plugins, 'acl'; -push @imap_plugins, 'imap_acl'; - -my $string =<<'HERE'; - -mail_access_groups = sharedmailbox - -service dict { - unix_listener dict { - mode = 0660 - group = sharedmailbox - } -} - -service auth { - unix_listener auth-userdb { - mode = 0660 - group = sharedmailbox - } -} - -service imap { - executable = imap imap-postlogin -} - -service imap-postlogin { - executable = script-login -d /usr/bin/imap-postlogin - unix_listener imap-postlogin { - } -} - - -namespace { - type = private - separator = / - prefix = - inbox = yes -} - -namespace { - type = shared - separator = / - prefix = shared/%%u/ - location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%u - subscriptions = no - list = children -} - -plugin { - acl_shared_dict = file:/home/e-smith/db/dovecot/sharedmailbox.db -} - -plugin { - acl = vfile -} - -plugin { - acl_anyone = allow -} - -HERE - -push @conf, $string; -$OUT .= ''; -} diff -Nur smeserver-dovecot-1.4.0/root/etc/e-smith/templates-user/.qmail/80DovecotLDA smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/templates-user/.qmail/80DovecotLDA --- smeserver-dovecot-1.4.0/root/etc/e-smith/templates-user/.qmail/80DovecotLDA 2013-02-26 18:57:10.000000000 +0100 +++ smeserver-dovecot-1.4.0_remove_extras/root/etc/e-smith/templates-user/.qmail/80DovecotLDA 1970-01-01 01:00:00.000000000 +0100 @@ -1,20 +0,0 @@ -# Dovecot LDA delivery -{ - # vim: ft=perl: - use esmith::ConfigDB; - my $cdb = esmith::ConfigDB->open_ro || die "Couldn't open ConfigDB\n"; - my $sieve = $cdb->get('sieve'); - my $usersieve = $props{Sieve} || 'enabled'; - my $globalsieve = ($sieve) ? ($sieve->prop('status') || 'disabled') : 'disabled'; - - if (($usersieve ne 'enabled') || ($globalsieve ne 'enabled')){ - $OUT .= "# Sieve is disabled\n"; - } - elsif ($props{EmailForward} !~ /^(local|both)$/) { - $OUT .= "# No local delivery (Dovecot LDA)\n"; - } - else{ - $OUT .= '| /var/qmail/bin/preline -f /usr/libexec/dovecot/dovecot-lda -a "$RECIPIENT"; if [ $? -ne 0 ] ; then exit -1; else exit 99; fi;'; - } -} - diff -Nur smeserver-dovecot-1.4.0/root/usr/bin/imap-postlogin smeserver-dovecot-1.4.0_remove_extras/root/usr/bin/imap-postlogin --- smeserver-dovecot-1.4.0/root/usr/bin/imap-postlogin 2013-02-26 18:57:10.000000000 +0100 +++ smeserver-dovecot-1.4.0_remove_extras/root/usr/bin/imap-postlogin 1970-01-01 01:00:00.000000000 +0100 @@ -1,5 +0,0 @@ -#!/bin/sh -ACL_GROUPS=`groups $USER | tr ' ' ','` -export ACL_GROUPS -export USERDB_KEYS="$USERDB_KEYS acl_groups" -exec "$@"