#!/bin/bash
# lastact: arturo@2023-05-09
# desc: Vuelve a la post-instalación de Vitalinux

FICHFUNCS="/usr/bin/vx-funcs-bash"
[ -f "${FICHFUNCS}" ] && . "${FICHFUNCS}" "null"

# 1) Comprobamos que es el usuario root quien quiere ejecutar el programa, sino salimos:
MENSAJE="Necesitas permisos de root para volver a la post-instalación"
vx-check_user_root "${MENSAJE}"

# 2) Preparamos la auditoria:
LOG="$(basename "${0}").log"
vx-log_xsession -o "${LOG}"

TEXTO="Volver a la Post-Instalación de Vitalinux"
vx-echo_log_titulo1 "SRV-VOLVER-POSTINSTALACION" "${TEXTO}"

# 3) Regeneramos el archivo first-tags.conf
_FIRST="/var/tmp/migasfree/first-tags.conf"
if [[ -f "${_FIRST}.save" ]]; then
	mv "${_FIRST}.save" "${_FIRST}" &&
		vx-colorear_echo "verde" "=> OK: Se ha renombrado first-tags correctamente ..." ||
		vx-colorear_echo "rojo" "#> ERROR: No se ha renombrado first-tags correctamente ..."
fi

# 4) Eliminamos la claves de comunicación del cliente con el servidor Migasfree
LISTADO=("/root/.migasfree-keys")
for DIR in "${LISTADO[@]}"; do
	[[ -d "${DIR}" ]] &&
		rm -Rf "${DIR}" &&
		vx-colorear_echo "verde" "=> OK: Se han eliminado las claves \"${DIR}\" ..." ||
		vx-colorear_echo "rojo" "#> ERROR: No se han eliminado las claves \"${DIR}\" ..."
done

DIR="/var/migasfree-client/keys"
if [[ -d "${DIR}" ]]; then
	rm -Rf /var/migasfree-client/keys/* &&
		vx-colorear_echo "verde" "=> OK: Se han eliminado las claves \"${DIR}\" ..." ||
		vx-colorear_echo "rojo" "#> ERROR: No se han eliminado las claves \"${DIR}\" ..."
fi

# 5) Forzamos la regeneración del archivo de variables generales:
COMANDO="/usr/bin/vx-regenerar-variables-generales"
[[ -f "${COMANDO}" ]] && eval "${COMANDO} --force" &&
	vx-colorear_echo "verde" "=> OK: Se han reseteado las variables de entorno: ${VXFICHVARS}" ||
	vx-colorear_echo "rojo" "#> ERROR: No se han podido resetear las variables de entorno: ${VXFICHVARS}"

# 6) Comprobamos a través del parámetro pasado si hay que eliminar los ficheros y configuraciones personales:
RESET="false"
[[ "${1}" =~ ^a$|^--all$ ]] && RESET="true"

"${RESET}" &&
	vx-colorear_echo "azul" "#> Ahora se va a tratar de eliminar los archivos de personalización de los usuarios:" &&
	vx-resetear-entorno-escritorio-cli

# Regeneramos las passwords de los usuarios base: profesor|docente, dga y alumno|estudiante si no es equipo de CASA
if "${RESET}" && ! vx-entcasa-check ; then
	PAQUETE="vx-dga-l-crear-usuarios"
	dpkg -l | grep -q "${PAQUETE}" &&
		dpkg-reconfigure vx-dga-l-crear-usuarios
	# Regeneramos las contraseñas por defecto:
	for USUYPASS in "docente:careidga" "estudiante:estudiante" "dga:careidga"; do
		USU="${USUYPASS%:*}"
		PASS="${USUYPASS#*:}"
		if getent passwd "${USU}" >/dev/null 2>&1 &&
			usermod -p "$(echo -n "${PASS}" | mkpasswd -s -m sha-512)" "${USU}"; then
			echo "#> Se ha regenerado la password correctamente la cuenta de usuario ${USU}"
		fi
	done
fi

vx-colorear_echo "azul" "#> La post-instalación se inciará en el próximo inicio de sesión gráfico, si todo ha sido Ok."
