#!/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

SID_FILE="/var/lib/eole/config/sid.sav"

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

#recupère le SID pour le mettre dans le ldif
CreoleRun 'net rpc getsid' fichier &> /dev/null
EOLE_SID_EOLE=$(CreoleRun 'net getlocalsid' fichier 2>/dev/null | awk -F: '{print $2}' | awk '{print $1}')
sid=$?
if [ "$sid" == "0" ] && [ "$EOLE_SID_EOLE" != "" ];
then
    # on a le SID
    [ "$DEBUG" = "0" ] && echo "le SID est : $EOLE_SID_EOLE"
elif [ -f "${SID_FILE}" ]
then
    EOLE_SID_EOLE=$(cat "${SID_FILE}")
else
    EchoRouge "Impossible de récupérer le SID du domaine !"
    exit 1
fi

# remplacement du template "[sambasid]"
#FIXME: si SCRIBE n'est pas sur l'annuaire ... demander le SID
# export to use $ENV in perl
export EOLE_SID_EOLE
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

