#!/bin/bash
# Kategorie: server
# Cleanup script to remove old userdata after user removal.
# (c) 2018 - Stefan Schaefer - stefan@invis-server.org

# Script zum Loeschen verwaister Kopano- und ownCloud-Benutzerdaten nach deren Ausscheiden
# Script to remove old Kopano- and ownCloud-userdata after user removal.

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

# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

# Das Script setzt derzeitig noch auf dem Tool kopano-admin auf. Das Tool gilt bereits
# als deprecated und wird durch kopano-cli ersetzt. kopano-cli ist bereits installiert,
# scheint aber noch nicht korrekt zu funtktionieren.

#Pfade
ocpath="/srv/www/htdocs/owncloud"
#ocdatapath="/srv/www/htdocs/owncloud/data"

if [[ -n $1 ]]; then
    loginname="$1"
else
    echo "Bitte Benutzernamen angeben!"
    exit
fi

# Store-ID ermitteln
storeid=`kopano-admin --list-orphans |tr "\t" " " |grep " $loginname " |tr -s " "|cut -d " " -f2`

if [[ -n $storeid ]]; then
    read -p "Soll der schlafende Kopano-Store \"$storeid\" des Benutzers \"$loginname\" endgültig gelöscht werden? [j/n] " delete
    if [[ $delete == "j" ]]; then
        kopano-admin --remove-store $storeid
    fi
else
    echo "Für den angegebenen Benutzer \"$loginname\" existiert kein schlafender Kopano-Store."
fi

# Store-ID ermitteln
ocid=`sudo -u wwwrun $ocpath/occ ldap:show-remnants | tr -s " "| grep $loginname | cut -d " " -f2`
# Wenn ein Store existiert, nachfragen ob er geloescht werden soll.
if [[ -n $ocid ]]; then
    read -p "Soll das verwaiste ownCloud-Datenverzeichnis \"$ocid\" des Benutzers \"$loginname\" endgültig gelöscht werden? [j/n] " delete
    if [[ $delete == "j" ]]; then
        sudo -u wwwrun $ocpath/occ user:delete $ocid
        #ls -l $ocdatapath | grep $ocid
    fi
else
    echo "Für den angegebenen Benutzer \"$loginname\" existieren keine verwaisten ownCloud-Daten."
fi
