#!/bin/bash
# desc: Creamos las cuentas por defecto: dga (uid: 1000), docente (uid: 1100), estudiante (uid: 1200), cau
# lastact: arturo@2022-6-17

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

# Mostramos la ayuda si se pasa como parámetro -h o --help:
AYUDA="Script encargado de crear las cuentas de usuario por defecto de Vitalinux."
AYUDA+="\nSe le puede pasar como parámetro \"all\" o los nombres de usuarios a crear."
EJEMPLOS=("${0} \"cau\" \"docente\" # Crea en el caso de que no existan las cuentas de usuario cau y docente")
EJEMPLOS+=("${0} \"all\" # Crea en el caso de que no existan las cuentas de usuario por defecto: cau, dga, docente y estudiante")
(vx-check_need_help "${1}" || [[ -z "${1}" ]]) &&
    vx-show_help "${0}" "${AYUDA}" "${EJEMPLOS[@]}" &&
    exit 0

function crear_dga() {
    if ! (getent passwd | cut -d":" -f3 | grep -q "^1000$"); then
        if useradd -m -d "/home/dga" -c "User DGA Vitalinux" \
            -u 1000 -G adm,cdrom,sudo,dip,plugdev,lpadmin,sambashare,dialout \
            -s "/bin/bash" -p $(printf "careidga" | mkpasswd -s -m sha-512) dga; then
            echo "=> Se ha creado la cuenta de usuario con uid 1000: dga"
        fi
    fi
}

function crear_docente() {
    USUARIO="${1}"
    if ! (getent passwd | cut -d":" -f3 | grep -q "^1100$"); then
        if useradd -m -d "/home/${USUARIO}" -c "Docente Centro Educativo" \
            -u 1100 -G adm,cdrom,sudo,dip,plugdev,lpadmin,sambashare,dialout \
            -s "/bin/bash" -p $(printf "careidga" | mkpasswd -s -m sha-512) "${USUARIO}"; then
            echo "=> Se ha creado la cuenta de usuario con uid 1100: ${USUARIO}"
        fi
    fi
}

function crear_estudiante() {
    USUARIO="${1}"
    if ! (getent passwd | cut -d":" -f3 | grep -q "^1200$"); then
        if useradd -m -d "/home/${USUARIO}" -c "Estudiante Centro Educativo" \
            -u 1200 -s "/bin/bash" -p $(printf "alumno" | mkpasswd -s -m sha-512) "${USUARIO}"; then
            echo "=> Se ha creado la cuenta de usuario con uid 1200: ${USUARIO}"
        fi
    fi
}

function crear_cau() {
    # Creamos la cuenta de usuario para el CAU:
    USUARIO="cau"
    if ! (getent passwd | grep -q ^cau: &>/dev/null); then
        if useradd -c "Mantenimiento CAU" \
            -G adm,cdrom,sudo,dip,plugdev,lpadmin,sambashare \
            -p '$6$Zxxgb7ni$ND0k2.yo1o58ErkX4YJs2dleSdpVf0PYHk5dcn/VIhYpxwxizFpe8gGIyA8T44SGZE4GrO0Nu6oq30FlQF1Nt.' \
            -m -d "/home/${USUARIO}" -s "/bin/bash" "${USUARIO}"; then
            echo "=> Se ha creado la cuenta de usuario para mantenimento de Equipos: ${USUARIO}"
        fi
    fi
}

until [[ -z "${1}" ]]; do
    case "${1}" in
    "all")
        crear_cau
        crear_dga
        crear_docente "docente"
        crear_estudiante "estudiante"
        break
        ;;
    "cau") crear_cau ;;
    "dga") crear_dga ;;
    "docente") crear_docente "${1}" ;;
    "estudiante") crear_estudiante "${1}" ;;
    *) exit 1 ;;
    esac
    shift
done

chmod 700 /home/*
exit 0
