ajout de la suppression en non interactif
This commit is contained in:
1 parent
390b0e5db2
commit
4cd82fb5bf
1 file changed
+125
-81
+125
-81
@@ -14,7 +14,7 @@ setKazVars
|
||||
. $KAZ_KEY_DIR/env-sympaServ
|
||||
. $KAZ_KEY_DIR/env-paheko
|
||||
|
||||
VERSION="20-10-2026"
|
||||
VERSION="01-11-2026"
|
||||
PRG=$(basename $0)
|
||||
RACINE=$(echo $PRG | awk '{print $1}')
|
||||
IFS=' '
|
||||
@@ -142,8 +142,8 @@ searchMattermost() {
|
||||
. $KAZ_KEY_DIR/env-mattermostAdmin
|
||||
curl -s -H "Authorization: Bearer ${mattermost_token}" "${URL_AGORA_API}/users/email/${1}" >${TFILE_CPT_MATTERMOST} 2>/dev/null
|
||||
REP_SEARCH_MATTERMOST=$(jq -r .id ${TFILE_CPT_MATTERMOST})
|
||||
if [ ! -z ${REP_SEARCH_MATTERMOST} ]
|
||||
then
|
||||
if [ ! -z ${REP_SEARCH_MATTERMOST} ]
|
||||
then
|
||||
if [ "$2" = "DETAILS" ]
|
||||
then
|
||||
echo -e -n "${RED} Compte : ${GREEN} " ; jq -r .username ${TFILE_CPT_MATTERMOST}
|
||||
@@ -152,9 +152,9 @@ searchMattermost() {
|
||||
else
|
||||
echo "${REP_SEARCH_MATTERMOST}"
|
||||
fi
|
||||
else
|
||||
echo ""
|
||||
fi
|
||||
else
|
||||
echo ""
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
@@ -163,9 +163,9 @@ infoEmail() {
|
||||
while :
|
||||
do
|
||||
clear
|
||||
echo "------------------------------------------------"
|
||||
echo "------------------------------------------------"
|
||||
printKazMsg "${ACTION_EN_COURS}"
|
||||
echo "------------------------------------------------"
|
||||
echo "------------------------------------------------"
|
||||
read -p "Alias ou Mail ? (R pour retour ou M/A [M] :" RINFOMAIL
|
||||
case ${RINFOMAIL} in
|
||||
"" | M | m )
|
||||
@@ -270,9 +270,12 @@ infoEmail() {
|
||||
}
|
||||
|
||||
searchDestroy() {
|
||||
ACTION_EN_COURS="Suppression d'un compte"
|
||||
ACTION_EN_COURS="Suppression d'un compte"
|
||||
DEL_AUTO=${1}
|
||||
DEL_MAIL=${2}
|
||||
if [ "${DEL_AUTO}" != "TRUE" ]
|
||||
then
|
||||
clear
|
||||
#TODO pourquoi REP_SEARCH_DESTROY=$(searchEmail) ne marche pas et fait déconner la fonction search_mail, j' en suis la à m' esbaudir
|
||||
CHOIX_MAIL=""
|
||||
searchEmail
|
||||
REP_SEARCH_DESTROY=$CHOIX_MAIL
|
||||
@@ -284,29 +287,47 @@ searchDestroy() {
|
||||
echo "Mail de secours = ${MAIL_SECOURS}"
|
||||
echo "Domaine en cours : ${DOMAINE_EN_COURS}"
|
||||
echo "--------------------------------- SUPPRESION ----------------------------------------"
|
||||
else
|
||||
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=*${DEL_MAIL}*))" | grep ^mailDeSecours | sed -e 's/^mailDeSecours: //')
|
||||
REP_SEARCH_DESTROY=$(ldapsearch -H ldap://${LDAP_IP} \
|
||||
-x -D "cn=${LDAP_ADMIN_USERNAME},${ldap_root}" \
|
||||
-w "${LDAP_ADMIN_PASSWORD}" \
|
||||
-b "${ldap_root}" "(&(objectclass=inetOrgPerson)(cn=*${DEL_MAIL}*))" | grep ^cn | sed -e 's/cn: //' )
|
||||
[ "${REP_SEARCH_DESTROY}" = "" ] && exit 1
|
||||
fi
|
||||
while :
|
||||
do
|
||||
echo "----------------------------------------------------------------------"
|
||||
printKazMsg "${GREEN}${ACTION_EN_COURS}${NC}"
|
||||
echo "----------------------------------------------------------------------"
|
||||
echo -e "${BLINK} TOUT RETOUR EN ARRIERE EST IMPOSSIBLE ${NC}"
|
||||
read -p "ON CONTINUE ? [ o / n ]: " SEARCH_DESTROY_INPUT
|
||||
if [ "$SEARCH_DESTROY_INPUT" = "n" ] || [ "$SEARCH_DESTROY_INPUT" = "N" ]
|
||||
# Si on est en intarctif on affiche la demande de validation
|
||||
if [ "${DEL_AUTO}" != "TRUE" ]
|
||||
then
|
||||
searchDestroy
|
||||
echo "----------------------------------------------------------------------"
|
||||
printKazMsg "${GREEN}${ACTION_EN_COURS}${NC}"
|
||||
echo "----------------------------------------------------------------------"
|
||||
echo -e "${BLINK} TOUT RETOUR EN ARRIERE EST IMPOSSIBLE ${NC}"
|
||||
read -p "ON CONTINUE ? [ o / n ]: " SEARCH_DESTROY_INPUT
|
||||
if [ "$SEARCH_DESTROY_INPUT" = "n" ] || [ "$SEARCH_DESTROY_INPUT" = "N" ]
|
||||
then
|
||||
searchDestroy
|
||||
fi
|
||||
else
|
||||
# sinon on force la réponse à oui
|
||||
SEARCH_DESTROY_INPUT="o"
|
||||
fi
|
||||
if [ "$SEARCH_DESTROY_INPUT" = "o" ] || [ "$SEARCH_DESTROY_INPUT" = "O" ]
|
||||
then
|
||||
####################################################################################################################
|
||||
# si le domaine en cours est Kaz alors on cherche dans mattermost, dans nextcloud et on supprime
|
||||
# le mail dans sympa
|
||||
# si le domaine en cours est Kaz alors on cherche dans mattermost, dans nextcloud et on supprime
|
||||
# le mail dans sympa
|
||||
####################################################################################################################
|
||||
if [ "${DOMAINE_EN_COURS}" = "${domain}" ]
|
||||
then
|
||||
MM_USER_ID=$(searchMattermost $REP_SEARCH_DESTROY)
|
||||
if [ ! -z ${MM_USER_ID} ]
|
||||
then
|
||||
echo -e "${RED} suppression de ${REP_SEARCH_DESTROY} trouvé dans mattermost ${NC}"
|
||||
[ "${DEL_AUTO}" != "TRUE" ] && echo -e "${RED} suppression de ${REP_SEARCH_DESTROY} trouvé dans mattermost ${NC}"
|
||||
status_del=$(curl -s --request DELETE \
|
||||
--header 'Accept: application/json' \
|
||||
-H "Authorization: Bearer ${mattermost_token}" \
|
||||
@@ -315,80 +336,80 @@ searchDestroy() {
|
||||
then
|
||||
printKazMsg "Suppresion ok"
|
||||
else
|
||||
printKazError -e "Erreur de suppression"
|
||||
fi
|
||||
echo " ----------------- "
|
||||
printKazError -e "Erreur de suppression"
|
||||
fi
|
||||
echo " ----------------- "
|
||||
else
|
||||
echo "Rien a supprimer dans mattermost"
|
||||
[ "${DEL_AUTO}" != "TRUE" ] && echo "Rien a supprimer dans mattermost"
|
||||
fi
|
||||
echo -e "${NC}"
|
||||
echo -e "Recherche de ${GREEN} ${REP_SEARCH_DESTROY} ${NC} dans nextcloud"
|
||||
USER_NEXTCLOUD_SUPPR=$(curl -s -X GET -H 'OCS-APIRequest:true' $httpProto://admin:$NEXTCLOUD_ADMIN_PASSWORD@$URL_NC/ocs/v1.php/cloud/users?search=${REP_SEARCH_DESTROY} | grep element | sed -s 's/[ \<\>\/]//g' | sed 's/element//g')
|
||||
if [ ! -z ${USER_NEXTCLOUD_SUPPR} ]
|
||||
then
|
||||
printKazMsg "le user trouvé est : ${USER_NEXTCLOUD_SUPPR}"
|
||||
echo -e "${RED} Suppresion de ${USER_NEXTCLOUD_SUPPR}"
|
||||
if [ "${DEL_AUTO}" != "TRUE" ]
|
||||
then
|
||||
[ "${DEL_AUTO}" != "TRUE" ] && printKazMsg "le user trouvé est : ${USER_NEXTCLOUD_SUPPR}"
|
||||
[ "${DEL_AUTO}" != "TRUE" ] && echo -e "${RED} Suppresion de ${USER_NEXTCLOUD_SUPPR}"
|
||||
fi
|
||||
curl -H 'OCS-APIREQUEST: true' -X DELETE $httpProto://admin:$NEXTCLOUD_ADMIN_PASSWORD@$URL_NC/ocs/v1.php/cloud/users/${USER_NEXTCLOUD_SUPPR} >/dev/null 2>&1
|
||||
if [ "$?" -eq "0" ]
|
||||
then
|
||||
printKazMsg "Suppresion ok"
|
||||
else
|
||||
printKazError "Erreur de suppression"
|
||||
printKazMsg "Suppresion ok"
|
||||
else
|
||||
printKazError "Erreur de suppression"
|
||||
fi
|
||||
else
|
||||
printKazMsg "Rien à supprimer dans Nextcloud"
|
||||
[ "${DEL_AUTO}" != "TRUE" ] && printKazMsg "Rien à supprimer dans Nextcloud"
|
||||
fi
|
||||
echo -e "${NC}"
|
||||
echo ""
|
||||
echo -e "${RED} suppression de ${REP_SEARCH_DESTROY} et ${MAIL_SECOURS} dans la liste info de sympa"
|
||||
echo -e "${NC}"
|
||||
echo ""
|
||||
#avec ancien client soap
|
||||
#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}"
|
||||
#avec nouveau client soap
|
||||
docker exec -i sympaServ sympa test soap --trusted_application=${SOAP_USER} --trusted_application_password=${SOAP_PASSWORD} --proxy_vars=\"USER_EMAIL=${LISTMASTER}\" --service=del --service_parameters=\"${NL_LIST},${REP_SEARCH_DESTROY}\" ${httpProto}://${URL_LISTE}/sympasoap
|
||||
docker exec -i sympaServ sympa test soap --trusted_application=${SOAP_USER} --trusted_application_password=${SOAP_PASSWORD} --proxy_vars=\"USER_EMAIL=${LISTMASTER}\" --service=del --service_parameters=\"${NL_LIST},${MAIL_SECOURS}\" ${httpProto}://${URL_LISTE}/sympasoap
|
||||
echo -e "${NC}"
|
||||
echo ""
|
||||
[ "${DEL_AUTO}" != "TRUE" ] && echo -e "${RED} suppression de ${REP_SEARCH_DESTROY} et ${MAIL_SECOURS} dans la liste info de sympa"
|
||||
echo -e "${NC}"
|
||||
echo ""
|
||||
docker exec -i sympaServ sympa test soap --trusted_application=${SOAP_USER} --trusted_application_password=${SOAP_PASSWORD} --proxy_vars=\"USER_EMAIL=${LISTMASTER}\" --service=del --service_parameters=\"${NL_LIST},${REP_SEARCH_DESTROY}\" ${httpProto}://${URL_LISTE}/sympasoap
|
||||
docker exec -i sympaServ sympa test soap --trusted_application=${SOAP_USER} --trusted_application_password=${SOAP_PASSWORD} --proxy_vars=\"USER_EMAIL=${LISTMASTER}\" --service=del --service_parameters=\"${NL_LIST},${MAIL_SECOURS}\" ${httpProto}://${URL_LISTE}/sympasoap
|
||||
|
||||
echo -e "${NC}"
|
||||
echo ""
|
||||
echo -e "${RED} suppression de ${REP_SEARCH_DESTROY} dans le serveur de mail"
|
||||
echo -e "${NC}"
|
||||
echo ""
|
||||
else
|
||||
echo "-------------------------------"
|
||||
echo "Le domaine n' est pas Kaz.bzh"
|
||||
echo "-------------------------------"
|
||||
echo -e "${NC}"
|
||||
echo ""
|
||||
[ "${DEL_AUTO}" != "TRUE" ] && echo -e "${RED} suppression de ${REP_SEARCH_DESTROY} dans le serveur de mail"
|
||||
echo -e "${NC}"
|
||||
echo ""
|
||||
fi
|
||||
############################## - Fin du cas de Kaz ##########################################################################################
|
||||
echo -e "${NC}"
|
||||
echo ""
|
||||
echo -e "${RED} suppression de ${REP_SEARCH_DESTROY} dans le ldap"
|
||||
echo -e "${NC}"
|
||||
echo ""
|
||||
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
|
||||
printKazMsg "Suppresion ok"
|
||||
cd ${DOCK_VOL}/postfix_mailData/_data/${DOMAINE_EN_COURS}
|
||||
USER_DEL_MAIL=$(echo ${REP_SEARCH_DESTROY} | sed -e 's/@.*//')
|
||||
echo "Suppression des données ${USER_DEL_MAIL}"
|
||||
rm -rf ${USER_DEL_MAIL} 2>/dev/null
|
||||
sleep 2
|
||||
|
||||
else
|
||||
printKazError "Erreur de suppression"
|
||||
fi
|
||||
printKazMsg "Envoi d'un message dans mattermost pour la suppression du compte"
|
||||
PostMattermost "Le compte ${REP_SEARCH_DESTROY} est supprimé , mail envoyé à ${MAIL_SECOURS}" "Creation-Comptes"
|
||||
MAIL_SUPPR="Le compte ${REP_SEARCH_DESTROY} est supprimé"
|
||||
OLDIFS=${IFS}
|
||||
IFS=''
|
||||
ExpMail ${MAIL_SECOURS} "Suppression de Compte" ${MAIL_SUPPR}
|
||||
echo -e "${NC}"
|
||||
IFS=${OLDIFS}
|
||||
echo -e "${NC}"
|
||||
echo ""
|
||||
[ "${DEL_AUTO}" != "TRUE" ] && echo -e "${RED} suppression de ${REP_SEARCH_DESTROY} dans le ldap"
|
||||
echo -e "${NC}"
|
||||
echo ""
|
||||
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
|
||||
[ "${DEL_AUTO}" != "TRUE" ] && printKazMsg "Suppresion ok"
|
||||
cd ${DOCK_VOL}/postfix_mailData/_data/${DOMAINE_EN_COURS}
|
||||
USER_DEL_MAIL=$(echo ${REP_SEARCH_DESTROY} | sed -e 's/@.*//')
|
||||
[ "${DEL_AUTO}" != "TRUE" ] && echo "Suppression des données ${USER_DEL_MAIL}"
|
||||
rm -rf ${USER_DEL_MAIL} 2>/dev/null
|
||||
sleep 2
|
||||
else
|
||||
[ "${DEL_AUTO}" != "TRUE" ] && printKazError "Erreur de suppression"
|
||||
fi
|
||||
[ "${DEL_AUTO}" != "TRUE" ] && printKazMsg "Envoi d'un message dans mattermost pour la suppression du compte"
|
||||
PostMattermost "Le compte ${REP_SEARCH_DESTROY} est supprimé , mail envoyé à ${MAIL_SECOURS}" "Creation-Comptes"
|
||||
MAIL_SUPPR="Le compte ${REP_SEARCH_DESTROY} est supprimé"
|
||||
OLDIFS=${IFS}
|
||||
IFS=''
|
||||
ExpMail ${MAIL_SECOURS} "Suppression de Compte" ${MAIL_SUPPR}
|
||||
echo -e "${NC}"
|
||||
IFS=${OLDIFS}
|
||||
# si on est en interactif on affiche le message
|
||||
if [ "${DEL_AUTO}" != "TRUE" ]
|
||||
then
|
||||
read -p " ---------------------- Appuyer sur une touche pour continuer -------------------------"
|
||||
searchDestroy
|
||||
else
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
@@ -712,19 +733,36 @@ createMailAuto()
|
||||
{
|
||||
if [ "$#" -ne "3" ]
|
||||
then
|
||||
echo "$0 pas assez d'arguments"
|
||||
PostMattermost "Erreur de script $0 ,constacter les sysadmins " "Creation-Comptes"
|
||||
echo "CreateMail : $0 pas assez d'arguments"
|
||||
PostMattermost "CreateMail : Erreur de script $0 ,constacter les sysadmins " "Creation-Comptes"
|
||||
exit 1
|
||||
fi
|
||||
if [[ ${2} =~ ${regexMail} ]] && [[ ${3} =~ ${regexMail} ]]
|
||||
then
|
||||
createMail TRUE ${2} ${3}
|
||||
else
|
||||
echo "Les mails sont invalides"
|
||||
PostMattermost "Erreur de script $0 ,les mails demandés sont malformés" "Creation-Comptes"
|
||||
echo "Createmail : Les mails sont invalides"
|
||||
PostMattermost "CreateMail : Erreur de script $0 ,les mails demandés sont malformés" "Creation-Comptes"
|
||||
fi
|
||||
}
|
||||
|
||||
delMailauto()
|
||||
{
|
||||
if [ "$#" -ne "2" ]
|
||||
then
|
||||
echo "DelMail : $0 pas assez d'arguments"
|
||||
PostMattermost "Delmail : Erreur de script $0 ,constacter les sysadmins " "Creation-Comptes"
|
||||
exit 1
|
||||
fi
|
||||
if [[ ${2} =~ ${regexMail} ]]
|
||||
then
|
||||
searchDestroy TRUE ${2}
|
||||
else
|
||||
echo "DelMail : Les mails sont invalides"
|
||||
PostMattermost "Delmail : Erreur de script $0 ,les mails demandés sont malformés" "Creation-Comptes"
|
||||
fi
|
||||
|
||||
}
|
||||
createAlias() {
|
||||
ACTION_EN_COURS="création d' un alias de messagerie"
|
||||
fait=0
|
||||
@@ -1226,11 +1264,13 @@ updateUser() {
|
||||
##############################################################################################################
|
||||
##############################################################################################################
|
||||
usage () {
|
||||
echo "$PRG [-c] [-h] [-r] [-v]"
|
||||
echo "$PRG [-c] [-d] [-h] [-r] [-v]"
|
||||
echo "script de gestion des kaznautes"
|
||||
echo " -c permet de créer un mail avec son mail de secours en non intereactif"
|
||||
echo " syntax : $0 -c mail mailsecours"
|
||||
echo " exemple $0 user@kaz.bzh user@apple.fr"
|
||||
echo " -d permet de supprimer un compte en non intereactif"
|
||||
echo " syntax : $0 -d mail"
|
||||
echo " -r permet de reset un mot de passe de compte en mode non interactif"
|
||||
echo " syntax : $0 -r mail"
|
||||
echo " -h aide sur ce script"
|
||||
@@ -1340,6 +1380,10 @@ case "$1" in
|
||||
[[ ${2} =~ ${regexMail} ]] && gestPassword $2 || echo "le 2ème argument doit être un mail"
|
||||
exit
|
||||
;;
|
||||
'-d' )
|
||||
delMailauto $@
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
|
||||
# on teste la présence du domaine du site dans le fichier autorized-domains.txt
|
||||
|
||||
Reference in new issue
Block a user