#!/bin/bash
# Kategorie: portal
# Mini Script zum automatischen Anlegen eines Gruppenverzeichnisses
# (c) 2009 Daniel T. Bender - invis-server.org
# (c) 2017,2018 Stefan Schaefer - invis-server.org
# Questions: info@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
conffile="/etc/invis/invis.conf"

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

gruppe="$1"
share=$2
dirnam="$3"

# Template-Pfad erfragen
templatedir=`getconfdata $conffile groupDirTemplatePath 2`
groupdir="/srv/shares/gruppen/$gruppe"

# function to set default acls
setrights() {
	chmod -R g+rwxs,o-rwx "$1"
	chgrp -R "$2" "$1"
	setfacl -R -d -m group:"$2":rwx "$1"
}

case $share in
    0)
	# leeres Verzeichnis
	mkdir "$groupdir"
	setrights "$groupdir" "$gruppe"
	;;
    1)
	# kein Verzeichnis
	echo "nothing to do"
	;;
    *)
	cp -r "$templatedir/$dirnam" "$groupdir"
        setrights "$groupdir" "$gruppe"
	;;
esac
