ajout suppression du mail de scours dans la liste infos
This commit is contained in:
105
bin/gestUsers.sh
105
bin/gestUsers.sh
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user