#!/bin/bash

# Basisdaten
OUTDATED_LIST="/tmp/outdated_wordpress.txt"
SMTP_SENDER="support@webhosting-franken.de"  # Absenderadresse für E-Mails

# Neueste WordPress-Version abrufen
LATEST_VERSION=$(curl -s https://api.wordpress.org/core/version-check/1.7/ | jq -r '.offers[0].version')

if [[ -z "$LATEST_VERSION" ]]; then
    echo "Fehler: Konnte die neueste WordPress-Version nicht abrufen."
    exit 1
fi

echo "Neueste WordPress-Version: $LATEST_VERSION"
echo "Veraltete WordPress-Installationen:" > "$OUTDATED_LIST"

# Daten aus MySQL abrufen
echo "Datenbankabfrage läuft..."
MYSQL_QUERY="USE syscp; SELECT name, firstname, company, email, documentroot  FROM panel_customers;"
MYSQL_RESULTS=$(mysql --defaults-extra-file=/root/.my.cnf -se "$MYSQL_QUERY")

# Durch alle Kunden iterieren
while IFS=$'\t' read -r name firstname company email documentroot; do
    if [[ -z "$documentroot" || ! -d "$documentroot" ]]; then
        continue
    fi

    echo "Durchsuche: $documentroot für WordPress-Installationen..."

    # Suche rekursiv nach "version.php" (Anzeichen für eine WordPress-Installation)
    find "$documentroot" -type f -path "*/wp-includes/version.php" | while read -r file; do
        WP_DIR=$(dirname "$(dirname "$file")")  # WordPress-Hauptverzeichnis bestimmen
        WP_VERSION=$(grep "^\$wp_version =" "$file" | awk -F "'" '{print $2}')

        if [[ -n "$WP_VERSION" ]]; then
            echo "Gefunden: $WP_DIR (Version: $WP_VERSION)"
            if dpkg --compare-versions "$WP_VERSION" lt "$LATEST_VERSION"; then
                echo "$username -> Veraltet! Bitte updaten. ($WP_DIR)"
                echo "$WP_DIR (Version: $WP_VERSION) - Kunde: $firstname $name ($email)" >> "$OUTDATED_LIST"
                
                # Automatische Benachrichtigung senden
                mail -s "[Webhosting Franken] ACHTUNG: Ihre WordPress-Installation ist veraltet!" "$email" <<EOF
Sehr geehrte Damen und Herren,

wir haben festgestellt, dass Ihre WordPress-Installation unter:

$WP_DIR

eine veraltete Version ($WP_VERSION) verwendet.

Die aktuelle Version ist: $LATEST_VERSION

Um Sicherheitsrisiken und Schäden zu vermeiden, empfehlen wir dringend ein Update
von Wordpress, den installieren Plugins und allen verwendeten Themes. Themes die nicht verwendet werden, 
sollten möglichst entfernt werden.

Sollten Sie das Wordpress nicht mehr verwenden, entfernen Sie dieses bitte vom Server. 
Alternativ sorgen Sie dafür, das eine Erreichbarkeit aus dem Internet nicht möglich ist.

Mit freundlichen Grüßen,
- Ihr Webhosting Franken Support-Team -
EOF
            fi
        fi
    done
done <<< "$MYSQL_RESULTS"

echo "Überprüfung abgeschlossen. Liste veralteter Installationen in: $OUTDATED_LIST"

# Falls veraltete Installationen gefunden wurden, sende eine Benachrichtigung
if [[ -s "$OUTDATED_LIST" ]]; then
    mail -s "Veraltete WordPress-Installationen gefunden" alert@webhosting-franken.de < "$OUTDATED_LIST"
    echo "Benachrichtigung an alert@webhosting-franken.de gesendet."
else
    echo "Keine veralteten WordPress-Installationen gefunden."
fi
