#!/bin/bash
. /usr/lib/eole/ihm.sh

option=$1
container_path_fichier=$(CreoleGet container_path_fichier)
container_path_annuaire=$(CreoleGet container_path_annuaire)
#DEBUG=0

CHROOT=''
[ -n "$container_path_fichier" ] && CHROOT="chroot $container_path_fichier"

#remet le SID de l'annuaire s'il est présent
echo -e "\n## Gestion du SID ##"
SID=`$CHROOT ldapsearch -x sambaDomainName=* sambaSID 2>/dev/null | grep ^sambaSID | awk -F ' ' '{print $2}'`
if [ ! -z "$SID" ];then
    echo $SID | grep -q ' '
    if [ $? -eq 0 ];then
        EchoOrange "ATTENTION : plusieurs sambaDomainName détectés !"
        EchoOrange "Des dysfonctionnements sont possibles sur ce serveur"
    else
        $CHROOT net setlocalsid $SID
    fi
fi

#recupère le SID pour le mettre dans le ldif
$CHROOT net rpc getsid &> /dev/null
ok=1
cpt=0
while [ "$ok" == "1" ];
do
    export EOLE_SID_EOLE=`$CHROOT net getlocalsid | awk -F: '{print $2}' | awk -F " " '{print $1}'`
    sid=$?
    if [ "$sid" == "0" ] && [ "$EOLE_SID_EOLE" != "" ];
    then
        # on a le SID
        ok=0
        [ "$DEBUG" = "0" ] && echo "le SID est : $EOLE_SID_EOLE"
    else
        $CHROOT net rpc getsid &> /dev/null
    fi
    cpt=$((cpt+1))
    if [ $cpt = 8 ]; then
        EchoRouge "Impossible de récupérer le SID du domaine !"
        exit 1
    fi
    sleep 3
done

# remplacement du template "[sambasid]"
#FIXME: si SCRIBE n'est pas sur l'annuaire ... demander le SID
for LDIF in `ls $container_path_annuaire/var/lib/eole/*.ldif`;do
    perl -i -pe's@\[sambasid\]@$ENV{EOLE_SID_EOLE}@'g $LDIF
done
perl -i -pe's@\[sambasid\]@$ENV{EOLE_SID_EOLE}@'g $container_path_fichier/etc/smbldap-tools/smbldap.conf

