ajout suppression du mail de scours dans la liste infos

This commit is contained in:
2025-11-16 09:49:53 +01:00
parent d6dbe1212c
commit 789917abae

View File

@@ -8,9 +8,9 @@ KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd)
setKazVars
. $DOCKERS_ENV
. $KAZ_KEY_DIR/env-ldapServ
. $KAZ_KEY_DIR/env-nextcloudServ
. $KAZ_KEY_DIR/env-sympaServ
. $KAZ_KEY_DIR/env-ldapServ
. $KAZ_KEY_DIR/env-nextcloudServ
. $KAZ_KEY_DIR/env-sympaServ
. $KAZ_KEY_DIR/env-paheko
VERSION="16-10-2025"
@@ -50,7 +50,7 @@ rm -rf /tmp/*.json
############################################ Fonctions #######################################################
ExpMail() {
. $KAZ_KEY_DIR/env-mail
MAIL_DEST=$1
MAIL_SUJET=$2
@@ -69,7 +69,7 @@ PostMattermost() {
searchEmail() {
# on peut appeler cette fonction avec un paramêtre
# on peut appeler cette fonction avec un paramêtre
# qui doit être une adresse email
CHOIX_MAIL=""
SEARCH_OBJECT_CLASS="inetOrgPerson"
@@ -85,7 +85,7 @@ searchEmail() {
echo "----------------------------------------------------------------------"
read -p "Adresse ou caractere contenu dans cette adresse (r ou R pour retour ) ? : " RMAIL
[[ ${RMAIL} =~ ^[rRqQ]$ ]] && Main
if [ "${RMAIL}" == "" ]
if [ "${RMAIL}" == "" ]
then
fait=0
else
@@ -114,11 +114,11 @@ searchEmail() {
# si on tape r ou r ou Q ou q ou 0 on relance le menu de recherche de mail
[[ $NB_LIGNE_MAIL =~ [rRqQ0] ]] && searchEmail $1
CHOIX_MAIL=$(cat ${TFILE_MAILS_TROUVE} | grep "^${NB_LIGNE_MAIL}\b" | awk '{print $3}' | tr -d '[:space:]')
# si on répond par entrée nb_ligne_mail sera vide
# si on donne une réponse qui est une lettre ou un mauvais chiffre choix_mail sera vide
# si on répond par entrée nb_ligne_mail sera vide
# si on donne une réponse qui est une lettre ou un mauvais chiffre choix_mail sera vide
# alors on reboucle sur la liste des mails
if [ "$CHOIX_MAIL" == "" ] || [ "$NB_LIGNE_MAIL" == "" ]
then
CHOIX_MAIL=""
@@ -171,7 +171,7 @@ infoEmail() {
printKazMsg "${ACTION_EN_COURS}"
echo "------------------------------------------------"
read -p "Alias ou Mail ? (R pour retour ou M/A [M] :" RINFOMAIL
case ${RINFOMAIL} in
case ${RINFOMAIL} in
"" | M | m )
infofait=O
searchEmail
@@ -202,12 +202,12 @@ infoEmail() {
jq .results[].ville /tmp/$CHOIX_MAIL-paheko.json
SERVEUR_PROD=$(jq .results[].serveur_prod /tmp/$CHOIX_MAIL-paheko.json)
NOM_ORGA=$(jq .results[].nom_orga /tmp/$CHOIX_MAIL-paheko.json)
[ "${NOM_ORGA}" = "null" ] || echo -e " - ORGA : ${GREEN}${NOM_ORGA}${NC} sur serveur ${GREEN}${SERVEUR_PROD}${NC} "
[ "${NOM_ORGA}" = "null" ] || echo -e " - ORGA : ${GREEN}${NOM_ORGA}${NC} sur serveur ${GREEN}${SERVEUR_PROD}${NC} "
echo -n " - Quota (Paheko) : "
echo -ne "${GREEN}"
jq .results[].quota_disque /tmp/$CHOIX_MAIL-paheko.json
echo -ne "${NC}"
echo -n " - Quota Mail (Ldap) : "
echo -n " - Quota Mail (Ldap) : "
echo -ne "${GREEN}"
ldapsearch -H ldap://${LDAP_IP} -D "cn=${LDAP_ADMIN_USERNAME},${ldap_root}" -x -w "${LDAP_ADMIN_PASSWORD}" -b "cn=${CHOIX_MAIL},ou=users,${ldap_root}" | grep -i mailquota | cut -c 11-60
echo -ne "${NC}"
@@ -254,7 +254,7 @@ infoEmail() {
-w "${LDAP_ADMIN_PASSWORD}" -b "${ldap_root}" "(&(objectclass=PostfixBookMailForward)(cn=*${CHOIX_MAIL}*))" mail \
| grep ^mail: | sed -e 's/^mail://')
do
echo -ne "=====> ${GREEN} "
echo -ne "=====> ${GREEN} "
echo "${INFOALIAS}" | tr -d [:space:]
echo "${NC}"
done
@@ -278,7 +278,12 @@ searchDestroy() {
CHOIX_MAIL=""
searchEmail
REP_SEARCH_DESTROY=$CHOIX_MAIL
MAIL_SECOURS=$(ldapsearch -H ldap://${LDAP_IP} \
-x -D "cn=${LDAP_ADMIN_USERNAME},${ldap_root}" \
-w "${LDAP_ADMIN_PASSWORD}" \
-b "${ldap_root}" "(&(objectclass=inetOrgPerson)(cn=*${REP_SEARCH_DESTROY}*))" | grep ^mailDeSecours | sed -e 's/^mailDeSecours: //')
echo "CHOIX=$REP_SEARCH_DESTROY"
echo "SECOURS=${MAIL_SECOURS}"
echo "domaine en cours : ${DOMAINE_EN_COURS}"
echo "--------------------------------- SUPPRESION ----------------------------------------"
while :
@@ -335,10 +340,11 @@ searchDestroy() {
fi
echo -e "${NC}"
echo ""
echo -e "${RED} suppression de ${REP_SEARCH_DESTROY} dans la liste info de sympa"
echo -e "${RED} suppression de ${REP_SEARCH_DESTROY} et ${MAIL_SECOURS} dans la liste info de sympa"
echo -e "${NC}"
echo ""
docker exec -ti sympaServ /usr/lib/sympa/bin/sympa_soap_client.pl --soap_url=${httpProto}://${URL_LISTE}/sympasoap --trusted_application=${SOAP_USER} --trusted_application_password=${SOAP_PASSWORD} --proxy_vars=USER_EMAIL=${LISTMASTER} --service=del --service_parameters="${NL_LIST},${REP_SEARCH_DESTROY}"
docker exec -ti sympaServ /usr/lib/sympa/bin/sympa_soap_client.pl --soap_url=${httpProto}://${URL_LISTE}/sympasoap --trusted_application=${SOAP_USER} --trusted_application_password=${SOAP_PASSWORD} --proxy_vars=USER_EMAIL=${LISTMASTER} --service=del --service_parameters="${NL_LIST},${MAIL_SECOURS}"
echo -e "${NC}"
echo ""
echo -e "${RED} suppression de ${REP_SEARCH_DESTROY} dans le serveur de mail"
@@ -355,10 +361,6 @@ searchDestroy() {
echo -e "${RED} suppression de ${REP_SEARCH_DESTROY} dans le ldap"
echo -e "${NC}"
echo ""
MAIL_SECOURS=$(ldapsearch -H ldap://${LDAP_IP} \
-x -D "cn=${LDAP_ADMIN_USERNAME},${ldap_root}" \
-w "${LDAP_ADMIN_PASSWORD}" \
-b "${ldap_root}" "(&(objectclass=inetOrgPerson)(cn=*${REP_SEARCH_DESTROY}*))" | grep ^mailDeSecours | sed -e 's/^mailDeSecours: //')
ldapdelete -H ldap://${LDAP_IP} -D "cn=${LDAP_ADMIN_USERNAME},${ldap_root}" -x -w "${LDAP_ADMIN_PASSWORD}" "cn=${REP_SEARCH_DESTROY},ou=users,${ldap_root}"
if [ "$?" -eq "0" ]
then
@@ -373,7 +375,7 @@ searchDestroy() {
printKazError "Erreur de suppression"
fi
printKazMsg "Envoi d'un message dans mattermost pour la suppression du compte"
docker exec -ti mattermostServ bin/mmctl post create kaz:Creation-Comptes --message "Le compte ${REP_SEARCH_DESTROY} est supprimé" >/dev/null 2>&1
docker exec -ti mattermostServ bin/mmctl post create kaz:Creation-Comptes --message "Le compte ${REP_SEARCH_DESTROY} est supprimé , mail envoyé à ${MAIL_SECOURS}" >/dev/null 2>&1
MAIL_SUPPR="Le compte ${REP_SEARCH_DESTROY} est supprimé"
OLDIFS=${IFS}
IFS=''
@@ -386,7 +388,7 @@ searchDestroy() {
done
}
gestPassword() {
gestPassword() {
ACTION_EN_COURS="Gestion du mot de passe d' un compte"
searchEmail
#cree un mdp acceptable par postfix/nc/mattermost
@@ -473,7 +475,7 @@ 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à
# On demande le mail souhaite on regarde si c' est valide et si ça existe déjà
while [ $fait -eq 0 ]
do
clear
@@ -482,7 +484,7 @@ createMail() {
echo "----------------------------------------------------------------------"
read -p "Mail souhaité (r ou R pour quitter ) : " EMAIL_SOUHAITE
[[ ${EMAIL_SOUHAITE} =~ ^[rRqQ]$ ]] && Main
if [[ ${EMAIL_SOUHAITE} =~ ${regexMail} ]]
if [[ ${EMAIL_SOUHAITE} =~ ${regexMail} ]]
then
ldapsearch -H ldap://${LDAP_IP} \
-x -D "cn=${LDAP_ADMIN_USERNAME},${ldap_root}" \
@@ -509,7 +511,7 @@ createMail() {
# 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} ----
echo " ---- Domaine: " ${DOMAINE_EN_COURS} ----
# ----------------------------------------------------------------------
# On demande le mail de secours et on teste si c' est un mail valide
fait=0
@@ -546,7 +548,7 @@ createMail() {
# on constitue le user,domain et pass crypté pour le ldap
LDAPUSER=$(echo ${EMAIL_SOUHAITE} | awk -F '@' '{print $1}')
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
echo "${GREEN}Mail souhaité : ${NC}${EMAIL_SOUHAITE}"
echo "${GREEN}Mail secours : ${NC}${EMAIL_SECOURS}"
@@ -587,7 +589,7 @@ agoraEnabled: ${TRUE_KAZ}\n\
userPassword: {CRYPT}${LDAPPASS}\n\n' | ldapmodify -c -H ldap://${LDAP_IP} -D \"cn=${LDAP_ADMIN_USERNAME},${ldap_root}\" -x -w ${LDAP_ADMIN_PASSWORD}" >${TFILE_CREATE_MAIL}
# on execute le fichier avec les données ldap pour créer l' entrée dans l' annuaire
bash ${TFILE_CREATE_MAIL} >/dev/null
# on colle le compte et le mot de passe dans le fichier
# on colle le compte et le mot de passe dans le fichier
echo "Création de : ${EMAIL_SOUHAITE} avec le mot de passe : ${PASSWORD}" >>${TFILE_CREATE_MAIL}
OLDIFS=${IFS}
IFS=''
@@ -618,7 +620,7 @@ Main
createAlias() {
ACTION_EN_COURS="création d' un alias de messagerie"
fait=0
# On demande alias souhaite on regarde si c' est valide et si ça existe déjà
# On demande alias souhaite on regarde si c' est valide et si ça existe déjà
while [ $fait -eq 0 ]
do
clear
@@ -627,7 +629,7 @@ createAlias() {
echo "-------------------------------------------------"
read -p "Alias souhaité (r ou q pour quitter ) : " AMAIL
[[ ${AMAIL} =~ ^[rRqQ]$ ]] && Main
if [[ ${AMAIL} =~ ${regexMail} ]]
if [[ ${AMAIL} =~ ${regexMail} ]]
then
RESU_ALIAS=$(ldapsearch -H ldap://${LDAP_IP} \
-x -D "cn=${LDAP_ADMIN_USERNAME},${ldap_root}" \
@@ -689,7 +691,7 @@ createAlias() {
done
fait=0
while [ "$fait" = 0 ]
do
do
clear
echo "--------------------------------------------------"
echo -e "${GREEN}résumé de la situation${NC}"
@@ -713,7 +715,7 @@ mailAlias: ${AMAIL}\n\
${LDAPALAISMAIL}\n\n" | ldapmodify -c -H ldap://${LDAP_IP} -D "cn=${LDAP_ADMIN_USERNAME},${ldap_root}" -x -w ${LDAP_ADMIN_PASSWORD}
fait=1
printKazMsg "Création de ${AMAIL}"
sleep 3
sleep 3
createAlias
;;
n | N )
@@ -737,7 +739,7 @@ delAlias() {
CHOIX_MAIL=""
RESU_ALIAS=""
searchEmail alias
RALIAS=${CHOIX_MAIL}
RALIAS=${CHOIX_MAIL}
[[ ${RALIAS} =~ ^[rRqQ]$ ]] && Main
if [[ ${RALIAS} =~ ${regexMail} ]]
then
@@ -764,13 +766,13 @@ delAlias() {
"" | * )
faitdel=0
;;
esac
esac
done
else
fait=0
fi
else
printKazError " - format alias invalide !"
sleep 2
@@ -780,12 +782,12 @@ delAlias() {
delAlias
}
modifyAlias()
modifyAlias()
{
ACTION_EN_COURS="Modfication d' un alias de messagerie"
MRESU_ALIAS=""
LISTE_MAIL_ALIAS=""
NEW_LISTE_MAIL_ALIAS=""
NEW_LISTE_MAIL_ALIAS=""
ACHANGE=0
searchEmail alias
LISTE_MAIL_ALIAS=$(ldapsearch -H ldap://${LDAP_IP} \
@@ -841,13 +843,13 @@ modifyAlias()
BOUCLE_ADD_MAIL=1
else
printKazMsg "erreur de mail"
fi
fi
done
;;
"" | n | N )
BOUCLE_ADD_MAIL=1
;;
* )
* )
BOUCLE_ADD_MAIL=1
;;
esac
@@ -875,7 +877,7 @@ modifyAlias()
}
updateUser() {
rm -rf /tmp/*attributs.txt
rm -rf /tmp/*attributs.txt
ACTION_EN_COURS="Modification d'un compte"
ATTRIB_MAILS="mailDeSecours mailAlias"
ATTRIB_QUOTA="mailQuota nextcloudQuota"
@@ -923,7 +925,7 @@ updateUser() {
then
echo "------------------------------------------------------------------------"
read -p "=====> ATTENTION : il y a des modifs en cours abandonner ?(o ou n) ? <===== : " RABANDON
case "${RABANDON}" in
case "${RABANDON}" in
o | O )
faitAttrib=1
;;
@@ -933,7 +935,7 @@ updateUser() {
* )
echo ""
;;
esac
esac
else
faitAttrib=1
fi
@@ -947,7 +949,7 @@ updateUser() {
# pour être sur de virer tous les espaces et les tab etc on utilise [:space:]
# on affiche tout les arguments ( les $1 $2 $2 avec la boucle for)
# on ajoute de ___ pour pouvoir le remplace par un espace entre chaque variable
# afin d' afficher un beau contenu1 contenu2 contenu 3
# afin d' afficher un beau contenu1 contenu2 contenu 3
ATTRIBUT_EN_COURS=$(cat ${FIC_ATTRIBUTS} | grep "^${REP_ATTRIBUT}\b" | awk '{print $3}')
CONTENU_ATTRIBUT=$(cat ${FIC_ATTRIBUTS} | grep "^${REP_ATTRIBUT}\b" \
@@ -971,7 +973,7 @@ updateUser() {
mailDeSecours )
echo "------------------------------------------------"
read -p " - Nouveau Mail de Secours : " RCHANGE
if [[ ${RCHANGE} =~ ${regexMail} ]]
if [[ ${RCHANGE} =~ ${regexMail} ]]
then
CHANGED+=([mailDeSecours]=${RCHANGE})
else
@@ -1011,7 +1013,7 @@ updateUser() {
do
read -p " - ${GREEN}Nouvel Alias: ( F pour finir ) :${NC} " ALIAS_SUPP
BOUCLE_ADD_MAIL=0
if [[ ${ALIAS_SUPP} =~ ${regexMail} ]]
if [[ ${ALIAS_SUPP} =~ ${regexMail} ]]
then
if echo "${CONTENU_ATTRIBUT}" | grep "^${ALIAS_SUPP}$"
then
@@ -1035,7 +1037,7 @@ updateUser() {
printKazMsg "Erreur"
sleep 2
;;
esac
esac
[ "${MAILALIAS_CHANGE}" -gt "0" ] && CHANGED+=([mailAlias]="${NEW_CONTENU_ATTRIBUT} ${TALIAS_SUPP}")
faitattrib=0
;;
@@ -1090,7 +1092,7 @@ updateUser() {
fi
;;
"" | * )
faitAttrib=0
faitAttrib=0
;;
esac
done
@@ -1149,19 +1151,19 @@ case "$CHOICE" in
;;
'4' )
searchDestroy
;;
;;
'5' )
createMail
;;
;;
'6' )
createAlias
;;
;;
'7' )
modifyAlias
;;
;;
'8' )
delAlias
;;
;;
'h'| "H" )
clear
echo "--------------------------------------------"
@@ -1199,4 +1201,3 @@ esac
[ ! -e ${KAZ_CONF_DIR}/autorized-domains.txt ] && { echo "création de ${KAZ_CONF_DIR}/autorized-domains.txt" ; touch ${KAZ_CONF_DIR}/autorized-domains.txt;}
! grep $domain ${KAZ_CONF_DIR}/autorized-domains.txt && echo $domain >> ${KAZ_CONF_DIR}/autorized-domains.txt
Main