#!/bin/bash
# Kategorie:
# Script zum Erweitern eines um die Objektklasse bennoMailarchivUser und das Attribut bennoRole.
# (c) 2020 Stefan Schaefer - invis-server.org

# License: GPLv3
# Dieses Programm ist freie Software. Sie können es unter den Bedingungen der 
# GNU General Public License, wie von der Free Software Foundation veröffentlicht,
# weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder
# (nach Ihrer Option) jeder späteren Version.

# Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen
# von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite 
# Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. 
# Details finden Sie in der GNU General Public License.

# Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem 
# Programm erhalten haben. Falls nicht, siehe <http://www.gnu.org/licenses/>. 

#Konfigurationsdaten
confdir="/etc/bennoad"
conffile="$confdir/benno.conf"
passfile="$confdir/benno-pws.conf"

sam="/var/lib/samba/private/sam.ldb"

# Funktionen
# Werte aus Konfigurationsdatendatei extrahieren
# $1 = Konfigurationsdatei, $2 = Parameter, $3 Wert (Feld)
getconfdata() {
    # Arg1 = Konfigurationsdatei, Arg2 = Suchbegriff, Arg3 = Feld
    cat $1 |grep "$2" | cut -d ":" -f $3
}

# Konfigurationsparameter tauschen
changevalues() {
    # Arg1 = Pfad, Arg2 = Datei, Arg3 = sed String
    cat $1/$2|sed "s%$3%g" > $1/$2.new
    mv $1/$2.new $1/$2
}

read -P "Verfügen Sie über eine aktuelle Datensicherung Ihres AD? (j/n)" adbackup

if [[ $adbackup == "j" ]]; then
    # Daten aus Konfiguration holen
    basedn=`getconfdata $conffile "baseDN" "2"`

    workingdir="/var/lib/benno-samba-ad/"
    string="dc=invis-server,dc=loc%$basedn"

    # LDIF Templates kopieren und anpassen
    cp /usr/share/benno-samba-ad/templates/*.ldif "$workingdir"

    # BaseDN anpassen
    changevalues $workingdir "01_benno-attributes.ldif" "$string"
    changevalues $workingdir "02_benno-objectclass.ldif" "$string"

    # Schema importieren
    ldbadd -v -H $sam "$workingdir/01_benno-attributes.ldif" --option="dsdb:schema update allowed"=true
    ldbadd -v -H $sam "$workingdir/02_benno-objectclass.ldif" --option="dsdb:schema update allowed"=true
else
    echo "Bitte erstellen Sie zunächst eine Sicherung Ihres AD."
    exit 1
fi
