#!/bin/bash
# lastact: arturo@2023-09-08, arturo@2022-09-12
# desc: creación de usuarios para el IES Bajo Aragón, etiqueta AULATIC

# FICHFUNCS="/usr/bin/vx-funcs-users"
# [ ! -f "${FICHFUNCS}" ] && \
# echo "=> No existen las funciones de gestión de usuarios: ${FICHFUNCS}" && \
# exit 1

# for NUM in {1..25} ; do
#     vx-funcs-users vx-crear_usuario "UsuTech${NUM}" "alumno"
#     vx-funcs-users vx-grupo_primario "UsuTech${NUM}" "alumno"
# done

# Eliminamos usuarios que ya no interesan:
for USU in "1btotic" "2btotic" "4esotic" ; do
    NOMBRE="${USU%:*}-25_26"
    getent passwd "${NOMBRE}" &>/dev/null && \
    userdel -rf "${NOMBRE}" 2> /dev/null && \
    echo "=> Se ha eliminado el usuario para volverlo a crear con perfil limpio: ${NOMBRE}"
done

# Usuarios de Tecnología:
# CURSO="Curso 2022-23"
# for USUARIO in "PRIBAC1" "PRIBAC2" "PRIBAC3" "SECBAC" "examen1:examen1TIC22" "examen2:examen2TIC22" "examen3:examen3TIC22"; do
CURSO="IES Mar de Aragón [Caspe] - Curso 2025-26"
USUARIOS=(
    2esoA 2esoB 2esoC 2esoD 2esoE 2esoF
    3esoA 3esoB 3esoC 3esoD 3esoE 3esoBil 3esoRob 3esoDiver
    4esoTecnoA 4esoTecnoB 4esotic 4esoTec 4esoDiver 4esoDig
    1bachTecno 1bachInf
    2bachTecno 2btoInf
    aula_esp
)
for USUARIO in "${USUARIOS[@]}" ; do
    #USUARIO="Usuario${NUM}_22_23"
    # Deshabilitamos el inicio de sesión automático: (lo deshabilitamos vía vx-centro.conf.json)
    # vx-funcs-users vx-usuario_inicio_deshabilitado
    FICHERO="/etc/lightdm/lightdm.conf"
    if grep -q "autologin-user=" "${FICHERO}" >/dev/null 2>/dev/null; then
        sed -i "s/^autologin-user=.*/autologin-user=SIN-INICIO-AUTOMATICO/g" "${FICHERO}"
    else
        echo "autologin-user=SIN-INICIO-AUTOMATICO" >>"${FICHERO}"
    fi
    
    NOMBRE="${USUARIO%:*}-25_26"
    # Comprobamos si el usuario ya existe:
    vx-funcs-users vx-check_exit_users "${NOMBRE}" &&
    {
        echo "El usuario ya existe: ${NOMBRE}"
        continue
    }
    IDIOMA="es"
    # PASS="alumno"
    echo "${USUARIO}" | grep -q ":" && PASS="${USUARIO#*:}" || PASS="alumno"
    # echo "Se creará ${USUARIO}: Nombre => ${NOMBRE} Idioma => ${IDIOMA}"
    SHELL="/bin/bash"
    HOMEUSU="/home/${NOMBRE}"
    GPRIMARIO="${NOMBRE}"
    # Lo añadimos al grupo nopasswdlogin para no requerir password para iniciar sesion:
    # LISTA_GRUPOS_SECUNDARIOS=("alumno" "dialout" "cdrom" "audio" "video" "nopasswdlogin")
    LISTA_GRUPOS_SECUNDARIOS=("alumno" "dialout" "cdrom" "audio" "video")
    COMENTARIO="${USUARIO%:*} - ${CURSO}"
    vx-funcs-users vx-check_exit_groups "${GPRIMARIO}" ||
    groupadd "${GPRIMARIO}"
    if useradd -c "${COMENTARIO}" \
    -s "${SHELL}" \
    -m -d "${HOMEUSU}" \
    -g "${GPRIMARIO}" \
    -G "$(echo "${LISTA_GRUPOS_SECUNDARIOS[*]}" | tr -s " " ",")" \
    -p "$(mkpasswd -s -m sha-512 "${PASS}")" \
    "${NOMBRE}"; then
        vx-funcs-bash vx-echo_log_ok "=> Se ha creado el usuario ${NOMBRE}"
    else
        vx-funcs-bash vx-echo_log_error "=> Problemas creando el usuario ${NOMBRE}"
    fi
    
    # Reseteamos la password del usuario para que la pueda cambiar en el primer inicio de sesión, para usuario que no son de examen:
    if echo "${NOMBRE}" | grep -vq "examen"; then
        getent passwd "${NOMBRE}" &>/dev/null &&
        chage -d 0 "${NOMBRE}" &&
        echo "=> Se ha reseteado la password: ${NOMBRE}"
    fi
    
    # Configuramos el idioma del usuario:
    case "${IDIOMA}" in
        "es")
            IDIOMA="es_ES:es_ES.UTF-8"
        ;;
        "en")
            IDIOMA="en:en_GB.UTF-8"
        ;;
        "fr")
            IDIOMA="fr_FR:fr_FR.UTF-8"
        ;;
    esac
    LENGUAJE="${IDIOMA%:*}"
    # Eliminamos el prefijo hasta el ":":
    FORMATOLOCAL="${IDIOMA#*:}"
    if vx-funcs-users vx-conf_idioma_usuario "${NOMBRE}" "${LENGUAJE}" "${FORMATOLOCAL}"; then
        vx-funcs-bash vx-echo_log_ok "¡¡Ok!! Se han configurado el idioma: ${NOMBRE} ${IDIOMA}"
    else
        vx-funcs-bash vx-echo_log_error "¡¡Error!! Problemas para para configurar el idioma: ${NOMBRE} ${IDIOMA}"
    fi
    
done

exit 0
