#!/bin/bash

domaine_messagerie_etab=$(CreoleGet domaine_messagerie_etab)
container_path_mail=$(CreoleGet container_path_mail)
activer_sympa=$(CreoleGet activer_sympa)

#à appeler après la generation de l'annuaire pour l'appel à Group()

option=$1

# copie du fichier de conf du domaine interne SYMPA
# /etc/sympa/i-$domaine_messagerie_etab
ETCSYMPA="/etc/sympa/i-$domaine_messagerie_etab"
FULL_ETCSYMPA="$container_path_mail/$ETCSYMPA"
if [ ! -d $FULL_ETCSYMPA ];then
    if [ "$option" = "reconfigure" ]; then
        echo "ATTENTION ! Le domaine de messagerie semble avoir changé"
        echo "Des dysfonctionnements sont possibles..."
        echo
        fi
    mkdir -p $FULL_ETCSYMPA
    CreoleRun "chown sympa:sympa $ETCSYMPA" mail
fi
cp /var/lib/eole/robot.conf $FULL_ETCSYMPA

# FIXME
#chmod a+r $SYMPADIR/cookie

# listes internes : /var/lib/sympa/expl/i-$domaine_messagerie_etab
VARSYMPA="/var/lib/sympa/expl/i-$domaine_messagerie_etab"
FULL_VARSYMPA="$container_path_mail/$VARSYMPA"
if [ ! -d $FULL_VARSYMPA ];then
    mkdir -p $FULL_VARSYMPA
    CreoleRun "chown sympa:sympa $VARSYMPA" mail
    # création des listes de base
    python -c "from scribe.eolegroup import Group; group = Group(); \
        group.add_maillist('Groupe', 'professeurs', 'restreint');   \
        group.add_maillist('Groupe', 'eleves', 'restreint');        \
        group.add_maillist('Groupe', 'administratifs', 'restreint')"
fi

# fichier des alias sympa pour Exim4
SYMPAALIAS="/etc/mail/sympa.aliases"
FULL_SYMPAALIAS="$container_path_mail/$SYMPAALIAS"
grep -q '^sympa: ' $FULL_SYMPAALIAS
if [ $? -ne 0 ];then
    echo "sympa: \"|/usr/lib/sympa/bin/queue sympa\"" >> $FULL_SYMPAALIAS
    CreoleRun "chown sympa:sympa $SYMPAALIAS" mail
    chmod 644 $FULL_SYMPAALIAS
fi

# FIXME : 2.4 ?
##Correction pour l'ajout automatique des alias
#grep -q "^my \$virtual_aliases" $container_path_mail/usr/lib/sympa/bin/alias_manager.pl
#if [ $? -ne 0 ];then
#        sed -i "s:my \$sympa_conf_file = '/etc/sympa/sympa.conf';:my \$sympa_conf_file = '/etc/sympa/sympa.conf';\
#                                                                 \nmy \$virtual_aliases_file = '/etc/mail/sympa.aliases';\
#                                                                 \nmy \$virtual_domain;\n:" $container_path_mail/usr/lib/sympa/bin/alias_manager.pl;
#fi

# FIXME : 2.4 ?
#creation du fichier de lock
#touch $container_path_mail/usr/lib/sympa/expl/alias_manager.lock

# FIXME : 2.4 ?
# droits manquants pour sympa
#chmod 755 $container_path_mail/etc/mail
#chmod 744 $container_path_mail/usr/lib/sympa/expl/alias_manager.lock
#CreoleRun "chown sympa:sympa /usr/lib/sympa/expl/alias_manager.lock" mail
#CreoleRun "chown sympa:sympa /usr/lib/sympa/static_content" mail
#touch $container_path_mail/etc/mail/sympa_virtual_regexp_i-$domaine_messagerie_etab
#CreoleRun "chown sympa:sympa /etc/mail/sympa_virtual_regexp_i-$domaine_messagerie_etab" mail

# sticky bit pour que l'appli web tourne en sympa
CreoleRun "chown sympa:sympa /usr/lib/cgi-bin/sympa/wwsympa.fcgi" mail
chmod u+s $container_path_mail/usr/lib/cgi-bin/sympa/wwsympa.fcgi
chmod g+s $container_path_mail/usr/lib/cgi-bin/sympa/wwsympa.fcgi

# Bonnes permissions sur le dossier du fake cgi
mkdir -p $container_path_mail/var/www/sympa
CreoleRun "chown sympa:sympa /var/www/sympa" mail

#FAIT par le dico (template)
#CreoleRun "chown sympa:sympa $container_path_mail/var/www/sympa/wwsympa.fcgi"
#chmod 755 $container_path_mail/var/www/sympa/wwsympa.fcgi

# mod-rewrite apache2
CreoleRun "/usr/sbin/a2enmod rewrite >/dev/null" mail
# mod_suexec apache2
CreoleRun "/usr/sbin/a2enmod suexec >/dev/null" mail

READER="/root/.reader"
if [ $activer_sympa == 'oui' -a -f $READER ];then
    SEARCHPATH="$container_path_mail/var/lib/sympa/expl"
    PASSWORD=`cat /root/.reader`
    # vérification du mot de passe du reader ldap
    for config in `grep -l "user cn=reader" $SEARCHPATH/*/config $SEARCHPATH/*/*/config 2>/dev/null`;do
        grep -Eq "^passwd $PASSWORD$" $config
        if [ $? -ne 0 ];then
            sed -i "s/^passwd .*$/passwd $PASSWORD/g" $config
        fi
    done
fi

exit 0
