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
TRUE_KAZ=TRUE
fait=0
# On demande le mail souhaite on regarde si c' est valide et si ça existe déjà
while [ $fait -eq 0 ]
do
clear
echo "----------------------------------------------------------------------"
printKazMsg "${ACTION_EN_COURS}"
echo "----------------------------------------------------------------------"
read -p "Mail souhaité (r ou R pour quitter ) : " EMAIL_SOUHAITE
[[ ${EMAIL_SOUHAITE} =~ ^[rRqQ]$ ]] && Main
EMAIL_SOUHAITE=$(unaccent utf8 ${EMAIL_SOUHAITE})
if [[ ${EMAIL_SOUHAITE} =~ ${regexMail} ]]
then
ldapsearch -H ldap://${LDAP_IP} \
-x -D "cn=${LDAP_ADMIN_USERNAME},${ldap_root}" \
-w "${LDAP_ADMIN_PASSWORD}" \
-b "${ldap_root}" "(&(objectclass=inetOrgPerson)(cn=${EMAIL_SOUHAITE}))" cn | grep ^cn | sed -e 's/^cn: //' >$TFILE_EMAILS
if grep -q "^${EMAIL_SOUHAITE}$" "${TFILE_EMAILS}"
# si c'est une demande de création non interactive
# la valeur de CREATE_AUTO doit être à TRUE
CREATE_AUTO=${1}
EMAIL_SOUHAITE=${2}
EMAIL_SECOURS=${3}
# Si on est en interactif, On demande le mail souhaite on regarde si c' est valide et si ça existe déjà
if [ "${CREATE_AUTO}" != "TRUE" ]
then
while [ $fait -eq 0 ]
do
clear
echo "----------------------------------------------------------------------"
printKazMsg "${ACTION_EN_COURS}"
echo "----------------------------------------------------------------------"
read -p "Mail souhaité (r ou R pour quitter ) : " EMAIL_SOUHAITE
[[ ${EMAIL_SOUHAITE} =~ ^[rRqQ]$ ]] && Main
EMAIL_SOUHAITE=$(unaccent utf8 ${EMAIL_SOUHAITE})
if [[ ${EMAIL_SOUHAITE} =~ ${regexMail} ]]
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"
ldapsearch -H ldap://${LDAP_IP} \
-x -D "cn=${LDAP_ADMIN_USERNAME},${ldap_root}" \
-w "${LDAP_ADMIN_PASSWORD}" \
-b "${ldap_root}" "(&(objectclass=inetOrgPerson)(cn=${EMAIL_SOUHAITE}))" cn | grep ^cn | sed -e 's/^cn: //' >$TFILE_EMAILS
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
fait=0
else
fait=1
fi
else
printKazError " - Mail invalide !"
sleep 2
fait=0
fi
done
done
else
echo "on aura fait les tests avant ou la c'est comme on veut"
fi
# 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/^.*@//')
echo " ---- Domaine: " ${DOMAINE_EN_COURS} ----
# ----------------------------------------------------------------------
# On demande le mail de secours et on teste si c' est un mail valide
fait=0
while [ $fait -eq 0 ]
do
read -p "Mail de secours : " EMAIL_SECOURS
if [[ ${EMAIL_SECOURS} =~ ${regexMail} ]] && [ "${EMAIL_SECOURS}" != "" ]
then
fait=1
else
printKazError "Mail invalide"
fait=0
fi
if [ "${EMAIL_SECOURS}" = "${EMAIL_SOUHAITE}" ]
then
echo -e "${RED}Le mail de secours ne peut pas etre le meme que le mail demande${NC}"
fait=0
fi
done
# On demande le prenom
while [ "${PRENOM}" = "" ]
do
read -p "Prenom : " PRENOM
done
# On demande le nom
while [ "${NOM}" = "" ]
do
read -p "Nom : " NOM
done
# Si on est en interactif, On demande le mail de secours, le nom et prenom et on teste si c' est un mail valide
if [ "${CREATE_AUTO}" != "TRUE" ]
then
fait=0
while [ $fait -eq 0 ]
do
read -p "Mail de secours : " EMAIL_SECOURS
if [[ ${EMAIL_SECOURS} =~ ${regexMail} ]] && [ "${EMAIL_SECOURS}" != "" ]
then
fait=1
else
printKazError "Mail invalide"
fait=0
fi
if [ "${EMAIL_SECOURS}" = "${EMAIL_SOUHAITE}" ]
then
echo -e "${RED}Le mail de secours ne peut pas etre le meme que le mail demande${NC}"
fait=0
fi
done
# On demande le prenom
while [ "${PRENOM}" = "" ]
do
read -p "Prenom : " PRENOM
done
# On demande le nom
while [ "${NOM}" = "" ]
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
IDENT_KAZ=$(unaccent utf8 "${PRENOM,,}.${NOM,,}")
# on créé le mot de passe
@@ -591,21 +606,24 @@ createMail() {
LDAPUSER=$(echo ${EMAIL_SOUHAITE} | awk -F '@' '{print $1}')
LDAPDOMAIN=$(echo ${EMAIL_SOUHAITE} | awk -F '@' '{print $2}')
LDAPPASS=$(mkpasswd -m sha512crypt ${PASSWORD})
[ "${DOMAINE_EN_COURS}" != "${domain}" ] && TRUE_KAZ=FALSE
echo "${GREEN}Mail souhaité : ${NC}${EMAIL_SOUHAITE}"
echo "${GREEN}Mail secours : ${NC}${EMAIL_SECOURS}"
echo "${GREEN}Prénom : ${NC}${PRENOM}"
echo "${GREEN}Nom : ${NC}${NOM}"
echo "${GREEN}Mot de passe : ${NC}${PASSWORD}"
RCREATION=""
repRegEx='^[oOnN]$'
while ! [[ ${RCREATION} =~ ${repRegEx} ]]
do
read -p "Création ? o/n : " RCREATION
done
if [ ${RCREATION} = "n" ] || [ ${RCREATION} = "N" ]
then
Main
if [ "${CREATE_AUTO}" != "TRUE" ]
then
[ "${DOMAINE_EN_COURS}" != "${domain}" ] && TRUE_KAZ=FALSE
echo "${GREEN}Mail souhaité : ${NC}${EMAIL_SOUHAITE}"
echo "${GREEN}Mail secours : ${NC}${EMAIL_SECOURS}"
echo "${GREEN}Prénom : ${NC}${PRENOM}"
echo "${GREEN}Nom : ${NC}${NOM}"
echo "${GREEN}Mot de passe : ${NC}${PASSWORD}"
RCREATION=""
repRegEx='^[oOnN]$'
while ! [[ ${RCREATION} =~ ${repRegEx} ]]
do
read -p "Création ? o/n : " RCREATION
done
if [ ${RCREATION} = "n" ] || [ ${RCREATION} = "N" ]
then
Main
fi
fi
echo "echo -e '\n\ndn: cn=${EMAIL_SOUHAITE},ou=users,${ldap_root}\n\
changeType: add\n\
@@ -647,16 +665,12 @@ Bonne journée"
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"
IFS=${OLDIFS}
echo " --------------------------------------------------------------------"
echo "! INFO : !"
echo "! Le Mot de passe !"
echo "! Est dans le fichier !"
echo "! ${TFILE_CREATE_MAIL} !"
echo " --------------------------------------------------------------------"
echo
read -p " - ENTREE pour continuer - "
# Retour au menu principal
Main
# si non interactif on fait une pause pour afficher une eventuelle erreur
if [ "${CREATE_AUTO}" != "TRUE" ]
then
read -p " - ENTREE pour continuer - "
createMail
fi
}
createAlias() {