version du script avec option -c pour une création de mail en non intereactif
This commit is contained in:
+73
-37
@@ -3,7 +3,8 @@
|
||||
# Ki : Did
|
||||
# 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
|
||||
setKazVars
|
||||
|
||||
@@ -31,7 +32,7 @@ LISTMASTER=$(echo ${LISTMASTERS} | cut -d',' -f1)
|
||||
|
||||
|
||||
#### 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)
|
||||
@@ -62,8 +63,8 @@ PostMattermost() {
|
||||
. $KAZ_KEY_DIR/env-mattermostAdmin
|
||||
PostM=$1
|
||||
CHANNEL=$2
|
||||
TEAMID=$(curl -s -H "Authorization: Bearer ${mattermost_token}" "${URL_AGORA_API}/teams/name/${EQUIPE}" | jq -r .id )
|
||||
CHANNELID=$(curl -s -H "Authorization: Bearer ${mattermost_token}" ${URL_AGORA_API}/teams/${TEAMID}/channels/name/${CHANNEL} | jq -r .id )
|
||||
TEAMID=$(curl -s -H "Authorization: Bearer ${mattermost_token}" "${URL_AGORA_API}/teams/name/${EQUIPE}" | jq -r .id )
|
||||
CHANNELID=$(curl -s -H "Authorization: Bearer ${mattermost_token}" ${URL_AGORA_API}/teams/${TEAMID}/channels/name/${CHANNEL} | jq -r .id )
|
||||
curl -s i-X POST -i -H "Authorization: Bearer ${mattermost_token}" -d "{\"channel_id\":\"${CHANNELID}\",\"message\":\"${PostM}\"}" "${URL_AGORA_API}/posts" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
@@ -521,7 +522,8 @@ createMail() {
|
||||
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à
|
||||
# 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" ]
|
||||
then
|
||||
while [ $fait -eq 0 ]
|
||||
@@ -535,39 +537,33 @@ createMail() {
|
||||
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}"
|
||||
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
|
||||
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
|
||||
fi
|
||||
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} ----
|
||||
# ----------------------------------------------------------------------
|
||||
# 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
|
||||
# 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} ----
|
||||
# ----------------------------------------------------------------------
|
||||
fait=0
|
||||
while [ $fait -eq 0 ]
|
||||
do
|
||||
@@ -596,7 +592,32 @@ createMail() {
|
||||
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"
|
||||
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
|
||||
# On constitue l' ident kaz pour le ldap
|
||||
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}
|
||||
# on execute le fichier avec les données ldap pour créer l' entrée dans l' annuaire
|
||||
bash ${TFILE_CREATE_MAIL} >/dev/null
|
||||
#DID
|
||||
# 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}
|
||||
@@ -675,7 +697,20 @@ fi
|
||||
|
||||
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() {
|
||||
@@ -1181,6 +1216,9 @@ updateUser() {
|
||||
usage () {
|
||||
printKazMsg "$PRG [-h] [-v]"
|
||||
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 " -v version du script."
|
||||
}
|
||||
@@ -1223,9 +1261,7 @@ case "$CHOICE" in
|
||||
'2' )
|
||||
updateUser
|
||||
;;
|
||||
'3' )
|
||||
# echo "La fonction est supprimée"
|
||||
# read -p "==> Entrée pour continuer <=="
|
||||
'3' )
|
||||
gestPassword
|
||||
;;
|
||||
'4' )
|
||||
|
||||
Reference in New Issue
Block a user