version du script avec option -c pour une création de mail en non intereactif
This commit is contained in:
+49
-13
@@ -3,7 +3,8 @@
|
|||||||
# Ki : Did
|
# Ki : Did
|
||||||
# koi : gestion globale des users Kaz mais aussi les users d'autres domaines hébergés
|
# koi : gestion globale des users Kaz mais aussi les users d'autres domaines hébergés
|
||||||
|
|
||||||
KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd)
|
#KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd)
|
||||||
|
KAZ_ROOT=/kaz
|
||||||
. $KAZ_ROOT/bin/.commonFunctions.sh
|
. $KAZ_ROOT/bin/.commonFunctions.sh
|
||||||
setKazVars
|
setKazVars
|
||||||
|
|
||||||
@@ -31,7 +32,7 @@ LISTMASTER=$(echo ${LISTMASTERS} | cut -d',' -f1)
|
|||||||
|
|
||||||
|
|
||||||
#### Test du serveur sur lequel s' execute le script ####
|
#### Test du serveur sur lequel s' execute le script ####
|
||||||
echo ${site} | grep -E 'prod1|dev' || { echo "Le script ne fonctionne que sur Prod1 et Dev ";exit;}
|
echo ${site} | grep -E 'prod1|dev' >/dev/null 2>&1 || { echo "Le script ne fonctionne que sur Prod1 et Dev ";exit;}
|
||||||
##############################
|
##############################
|
||||||
|
|
||||||
TFILE_EMAILS=$(mktemp /tmp/$RACINE.XXXXXXXXX.TFILE_EMAILS)
|
TFILE_EMAILS=$(mktemp /tmp/$RACINE.XXXXXXXXX.TFILE_EMAILS)
|
||||||
@@ -521,7 +522,8 @@ createMail() {
|
|||||||
CREATE_AUTO=${1}
|
CREATE_AUTO=${1}
|
||||||
EMAIL_SOUHAITE=${2}
|
EMAIL_SOUHAITE=${2}
|
||||||
EMAIL_SECOURS=${3}
|
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à
|
# Si on est en interactif, On demande le mail souhaite le mail secours et on demande le nom et prenom
|
||||||
|
# et on regarde si c' est valide et si ça existe déjà
|
||||||
if [ "${CREATE_AUTO}" != "TRUE" ]
|
if [ "${CREATE_AUTO}" != "TRUE" ]
|
||||||
then
|
then
|
||||||
while [ $fait -eq 0 ]
|
while [ $fait -eq 0 ]
|
||||||
@@ -557,17 +559,11 @@ createMail() {
|
|||||||
fait=0
|
fait=0
|
||||||
fi
|
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
|
# 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} ----
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
# 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
|
fait=0
|
||||||
while [ $fait -eq 0 ]
|
while [ $fait -eq 0 ]
|
||||||
do
|
do
|
||||||
@@ -596,7 +592,32 @@ createMail() {
|
|||||||
read -p "Nom : " NOM
|
read -p "Nom : " NOM
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
echo "on invente un nom et prénom et on aura testé avant si le mail de secours est valide"
|
echo "on invente un nom et prénom"
|
||||||
|
ERRMAILAUTO=""
|
||||||
|
# on renseigne DOMAINE EN COURS pour cette partie de script ( puisque l'autre déclaration se fait dasn la boucle interactive
|
||||||
|
DOMAINE_EN_COURS=$(echo ${EMAIL_SOUHAITE} | sed -e 's/^.*@//')
|
||||||
|
NOM=kaz
|
||||||
|
PRENOM=$(echo ${EMAIL_SOUHAITE} | sed -e 's/@.*$//')
|
||||||
|
# on cherche le mail dans l'annuaire
|
||||||
|
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
|
||||||
|
ERRMAILAUTO="${ERRMAILAUTO} Le mail ${EMAIL_SOUHAITE} existe déjà"
|
||||||
|
fi
|
||||||
|
if ! grep $(echo ${EMAIL_SOUHAITE} | sed -e 's/^.*@//') ${KAZ_CONF_DIR}/autorized-domains.txt >/dev/null
|
||||||
|
then
|
||||||
|
ERRMAILAUTO="${ERRMAILAUTO} Le domaine ${DOMAINE_EN_COURS} n' est pas dans la liste autorisée"
|
||||||
|
fi
|
||||||
|
if [ ! -z "${ERRMAILAUTO}" ]
|
||||||
|
then
|
||||||
|
PostMattermost "Erreur de script auto : ${ERRMAILAUTO}" "Creation-Comptes"
|
||||||
|
echo "Erreur de script auto : ${ERRMAILAUTO}"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
fi
|
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,,}")
|
||||||
@@ -649,6 +670,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}
|
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
|
# on execute le fichier avec les données ldap pour créer l' entrée dans l' annuaire
|
||||||
bash ${TFILE_CREATE_MAIL} >/dev/null
|
bash ${TFILE_CREATE_MAIL} >/dev/null
|
||||||
|
#DID
|
||||||
# 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}
|
echo "Création de : ${EMAIL_SOUHAITE} avec le mot de passe : ${PASSWORD}" >>${TFILE_CREATE_MAIL}
|
||||||
OLDIFS=${IFS}
|
OLDIFS=${IFS}
|
||||||
@@ -675,7 +697,20 @@ fi
|
|||||||
|
|
||||||
createMailAuto()
|
createMailAuto()
|
||||||
{
|
{
|
||||||
echo
|
echo $@
|
||||||
|
if [ "$#" -ne "3" ]
|
||||||
|
then
|
||||||
|
echo "$0 pas assez d'arguments"
|
||||||
|
PostMattermost "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"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
createAlias() {
|
createAlias() {
|
||||||
@@ -1181,6 +1216,9 @@ updateUser() {
|
|||||||
usage () {
|
usage () {
|
||||||
printKazMsg "$PRG [-h] [-v]"
|
printKazMsg "$PRG [-h] [-v]"
|
||||||
printKazMsg "script de gestion des kaznautes"
|
printKazMsg "script de gestion des kaznautes"
|
||||||
|
printKazMsg " -c permet de créer un mail avec son mail de secours en non intereactif"
|
||||||
|
printKazMsg " syntax : $0 -c mail mailsecours"
|
||||||
|
printKazMsg " exemple $0 user@kaz.bzh user@apple.fr"
|
||||||
printKazMsg " -h aide sur ce script"
|
printKazMsg " -h aide sur ce script"
|
||||||
printKazMsg " -v version du script."
|
printKazMsg " -v version du script."
|
||||||
}
|
}
|
||||||
@@ -1224,8 +1262,6 @@ case "$CHOICE" in
|
|||||||
updateUser
|
updateUser
|
||||||
;;
|
;;
|
||||||
'3' )
|
'3' )
|
||||||
# echo "La fonction est supprimée"
|
|
||||||
# read -p "==> Entrée pour continuer <=="
|
|
||||||
gestPassword
|
gestPassword
|
||||||
;;
|
;;
|
||||||
'4' )
|
'4' )
|
||||||
|
|||||||
Reference in New Issue
Block a user