#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0

# Importer les fonctions communes
source "$(dirname "$0")/../common/common_utils.sh"

# Vérifier si le script est exécuté en root
check_root

WWW_DIR="/var/www"
CURRENT_USER="${SUDO_USER:-$(whoami)}"

echo "Correction des permissions de $WWW_DIR/html si nécessaire..."
if [ -d "$WWW_DIR/html" ]; then
    OWNER_GROUP=$(stat -c "%U:%G" "$WWW_DIR/html")
    if [ "$OWNER_GROUP" != "www-data:www-data" ]; then
        sudo chown -R www-data:www-data "$WWW_DIR/html"
        echo "Propriétaire de $WWW_DIR/html corrigé en www-data:www-data"
    else
        echo "$WWW_DIR/html est déjà correctement configuré."
    fi
fi

echo ""
echo "Liste des dossiers dans $WWW_DIR :"
dirs=()
i=1
for d in "$WWW_DIR"/*/; do
    folder=$(basename "$d")
    dirs+=("$folder")
    echo "[$i] $folder"
    ((i++))
done

echo "[0] Tous les dossiers"

read -p "Sur quel dossier appliquer la règle ? (Entrer le numéro ou 0 pour tous) : " choix

# Ajout de l'utilisateur courant au groupe www-data
if id -nG "$CURRENT_USER" | grep -qw "www-data"; then
    echo "L'utilisateur $CURRENT_USER est déjà dans le groupe www-data"
else
    echo "Ajout de $CURRENT_USER au groupe www-data..."
    usermod -aG www-data "$CURRENT_USER"
fi

# Fonction d'application des droits
apply_permissions() {
    dossier="$1"
    echo "Application des permissions sur $WWW_DIR/$dossier ..."
    chown -R www-data:www-data "$WWW_DIR/$dossier"
    chmod -R g+rwX "$WWW_DIR/$dossier"
}

if [ "$choix" -eq 0 ]; then
    for d in "${dirs[@]}"; do
        apply_permissions "$d"
    done
else
    index=$((choix - 1))
    if [ "$index" -ge 0 ] && [ "$index" -lt "${#dirs[@]}" ]; then
        apply_permissions "${dirs[$index]}"
    else
        echo "Choix invalide."
        exit 1
    fi
fi

echo ""
echo "Opération terminée. Pensez à vous déconnecter/reconnecter si c'est la première fois que vous rejoignez le groupe www-data."
