iinteractif

This commit is contained in:
2026-10-04 19:22:00 +02:00
parent 05885ab868
commit 2a0fcda9f1
+97 -83
View File
@@ -516,73 +516,88 @@ createMail() {
QUOTA=1 QUOTA=1
TRUE_KAZ=TRUE TRUE_KAZ=TRUE
fait=0 fait=0
# On demande le mail souhaite on regarde si c' est valide et si ça existe déjà # si c'est une demande de création non interactive
while [ $fait -eq 0 ] # la valeur de CREATE_AUTO doit être à TRUE
do CREATE_AUTO=${1}
clear EMAIL_SOUHAITE=${2}
echo "----------------------------------------------------------------------" EMAIL_SECOURS=${3}
printKazMsg "${ACTION_EN_COURS}" # Si on est en interactif, On demande le mail souhaite on regarde si c' est valide et si ça existe déjà
echo "----------------------------------------------------------------------" if [ "${CREATE_AUTO}" != "TRUE" ]
read -p "Mail souhaité (r ou R pour quitter ) : " EMAIL_SOUHAITE then
[[ ${EMAIL_SOUHAITE} =~ ^[rRqQ]$ ]] && Main while [ $fait -eq 0 ]
EMAIL_SOUHAITE=$(unaccent utf8 ${EMAIL_SOUHAITE}) do
if [[ ${EMAIL_SOUHAITE} =~ ${regexMail} ]] clear
then echo "----------------------------------------------------------------------"
ldapsearch -H ldap://${LDAP_IP} \ printKazMsg "${ACTION_EN_COURS}"
-x -D "cn=${LDAP_ADMIN_USERNAME},${ldap_root}" \ echo "----------------------------------------------------------------------"
-w "${LDAP_ADMIN_PASSWORD}" \ read -p "Mail souhaité (r ou R pour quitter ) : " EMAIL_SOUHAITE
-b "${ldap_root}" "(&(objectclass=inetOrgPerson)(cn=${EMAIL_SOUHAITE}))" cn | grep ^cn | sed -e 's/^cn: //' >$TFILE_EMAILS [[ ${EMAIL_SOUHAITE} =~ ^[rRqQ]$ ]] && Main
if grep -q "^${EMAIL_SOUHAITE}$" "${TFILE_EMAILS}" EMAIL_SOUHAITE=$(unaccent utf8 ${EMAIL_SOUHAITE})
if [[ ${EMAIL_SOUHAITE} =~ ${regexMail} ]]
then then
printKazError " - Le mail ${EMAIL_SOUHAITE} existe déjà" ldapsearch -H ldap://${LDAP_IP} \
fait=0 -x -D "cn=${LDAP_ADMIN_USERNAME},${ldap_root}" \
elif ! grep $(echo ${EMAIL_SOUHAITE} | sed -e 's/^.*@//') ${KAZ_CONF_DIR}/autorized-domains.txt >/dev/null -w "${LDAP_ADMIN_PASSWORD}" \
then -b "${ldap_root}" "(&(objectclass=inetOrgPerson)(cn=${EMAIL_SOUHAITE}))" cn | grep ^cn | sed -e 's/^cn: //' >$TFILE_EMAILS
printKazMsg "Le domaine n' est pas dans la liste autorisée" if grep -q "^${EMAIL_SOUHAITE}$" "${TFILE_EMAILS}"
then
printKazError " - Le mail ${EMAIL_SOUHAITE} existe déjà"
fait=0
elif ! grep $(echo ${EMAIL_SOUHAITE} | sed -e 's/^.*@//') ${KAZ_CONF_DIR}/autorized-domains.txt >/dev/null
then
printKazMsg "Le domaine n' est pas dans la liste autorisée"
sleep 2
fait=0
else
fait=1
fi
else
printKazError " - Mail invalide !"
sleep 2 sleep 2
fait=0 fait=0
else
fait=1
fi fi
else done
printKazError " - Mail invalide !" else
sleep 2 echo "on aura fait les tests avant ou la c'est comme on veut"
fait=0 fi
fi
done
# on renseigne le domaine en cours pour les options qui concernent pas le domaine kaz.bzh # on renseigne le domaine en cours pour les options qui concernent pas le domaine kaz.bzh
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
DOMAINE_EN_COURS=$(echo ${EMAIL_SOUHAITE} | sed -e 's/^.*@//') DOMAINE_EN_COURS=$(echo ${EMAIL_SOUHAITE} | sed -e 's/^.*@//')
echo " ---- Domaine: " ${DOMAINE_EN_COURS} ---- echo " ---- Domaine: " ${DOMAINE_EN_COURS} ----
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
# On demande le mail de secours et on teste si c' est un mail valide # Si on est en interactif, On demande le mail de secours, le nom et prenom et on teste si c' est un mail valide
fait=0 if [ "${CREATE_AUTO}" != "TRUE" ]
while [ $fait -eq 0 ] then
do fait=0
read -p "Mail de secours : " EMAIL_SECOURS while [ $fait -eq 0 ]
if [[ ${EMAIL_SECOURS} =~ ${regexMail} ]] && [ "${EMAIL_SECOURS}" != "" ] do
then read -p "Mail de secours : " EMAIL_SECOURS
fait=1 if [[ ${EMAIL_SECOURS} =~ ${regexMail} ]] && [ "${EMAIL_SECOURS}" != "" ]
else then
printKazError "Mail invalide" fait=1
fait=0 else
fi printKazError "Mail invalide"
if [ "${EMAIL_SECOURS}" = "${EMAIL_SOUHAITE}" ] fait=0
then fi
echo -e "${RED}Le mail de secours ne peut pas etre le meme que le mail demande${NC}" if [ "${EMAIL_SECOURS}" = "${EMAIL_SOUHAITE}" ]
fait=0 then
fi echo -e "${RED}Le mail de secours ne peut pas etre le meme que le mail demande${NC}"
done fait=0
# On demande le prenom fi
while [ "${PRENOM}" = "" ] done
do # On demande le prenom
read -p "Prenom : " PRENOM while [ "${PRENOM}" = "" ]
done do
# On demande le nom read -p "Prenom : " PRENOM
while [ "${NOM}" = "" ] done
do # On demande le nom
read -p "Nom : " NOM while [ "${NOM}" = "" ]
done do
read -p "Nom : " NOM
done
else
echo "on invente un nom et prénom et on aura testé avant si le mail de secours est valide"
fi
# On constitue l' ident kaz pour le ldap # On constitue l' ident kaz pour le ldap
IDENT_KAZ=$(unaccent utf8 "${PRENOM,,}.${NOM,,}") IDENT_KAZ=$(unaccent utf8 "${PRENOM,,}.${NOM,,}")
# on créé le mot de passe # on créé le mot de passe
@@ -591,21 +606,24 @@ createMail() {
LDAPUSER=$(echo ${EMAIL_SOUHAITE} | awk -F '@' '{print $1}') LDAPUSER=$(echo ${EMAIL_SOUHAITE} | awk -F '@' '{print $1}')
LDAPDOMAIN=$(echo ${EMAIL_SOUHAITE} | awk -F '@' '{print $2}') LDAPDOMAIN=$(echo ${EMAIL_SOUHAITE} | awk -F '@' '{print $2}')
LDAPPASS=$(mkpasswd -m sha512crypt ${PASSWORD}) LDAPPASS=$(mkpasswd -m sha512crypt ${PASSWORD})
[ "${DOMAINE_EN_COURS}" != "${domain}" ] && TRUE_KAZ=FALSE if [ "${CREATE_AUTO}" != "TRUE" ]
echo "${GREEN}Mail souhaité : ${NC}${EMAIL_SOUHAITE}" then
echo "${GREEN}Mail secours : ${NC}${EMAIL_SECOURS}" [ "${DOMAINE_EN_COURS}" != "${domain}" ] && TRUE_KAZ=FALSE
echo "${GREEN}Prénom : ${NC}${PRENOM}" echo "${GREEN}Mail souhaité : ${NC}${EMAIL_SOUHAITE}"
echo "${GREEN}Nom : ${NC}${NOM}" echo "${GREEN}Mail secours : ${NC}${EMAIL_SECOURS}"
echo "${GREEN}Mot de passe : ${NC}${PASSWORD}" echo "${GREEN}Prénom : ${NC}${PRENOM}"
RCREATION="" echo "${GREEN}Nom : ${NC}${NOM}"
repRegEx='^[oOnN]$' echo "${GREEN}Mot de passe : ${NC}${PASSWORD}"
while ! [[ ${RCREATION} =~ ${repRegEx} ]] RCREATION=""
do repRegEx='^[oOnN]$'
read -p "Création ? o/n : " RCREATION while ! [[ ${RCREATION} =~ ${repRegEx} ]]
done do
if [ ${RCREATION} = "n" ] || [ ${RCREATION} = "N" ] read -p "Création ? o/n : " RCREATION
then done
Main if [ ${RCREATION} = "n" ] || [ ${RCREATION} = "N" ]
then
Main
fi
fi fi
echo "echo -e '\n\ndn: cn=${EMAIL_SOUHAITE},ou=users,${ldap_root}\n\ echo "echo -e '\n\ndn: cn=${EMAIL_SOUHAITE},ou=users,${ldap_root}\n\
changeType: add\n\ changeType: add\n\
@@ -647,16 +665,12 @@ Bonne journée"
ExpMail ${EMAIL_SECOURS} "Creation de ${EMAIL_SOUHAITE}" ${MSG_CREATION_MAIL} ExpMail ${EMAIL_SECOURS} "Creation de ${EMAIL_SOUHAITE}" ${MSG_CREATION_MAIL}
PostMattermost "création du compte ${EMAIL_SOUHAITE} avec l' adresse de secours ${EMAIL_SECOURS}" "Creation-Comptes" PostMattermost "création du compte ${EMAIL_SOUHAITE} avec l' adresse de secours ${EMAIL_SECOURS}" "Creation-Comptes"
IFS=${OLDIFS} IFS=${OLDIFS}
echo " --------------------------------------------------------------------" # si non interactif on fait une pause pour afficher une eventuelle erreur
echo "! INFO : !" if [ "${CREATE_AUTO}" != "TRUE" ]
echo "! Le Mot de passe !" then
echo "! Est dans le fichier !" read -p " - ENTREE pour continuer - "
echo "! ${TFILE_CREATE_MAIL} !" createMail
echo " --------------------------------------------------------------------" fi
echo
read -p " - ENTREE pour continuer - "
# Retour au menu principal
Main
} }
createAlias() { createAlias() {