SetAllPass a disparu ! Reste le secretgen à refaire + revoir les valeurs "liées" par setallpass. Rien n'est testé pour le moment.
This commit is contained in:
		@@ -16,7 +16,6 @@ KAZ_ROOT=$(cd "$(dirname $0)/.."; pwd)
 | 
			
		||||
setKazVars
 | 
			
		||||
 | 
			
		||||
. "${DOCKERS_ENV}"
 | 
			
		||||
. "${KAZ_KEY_DIR}/SetAllPass.sh"
 | 
			
		||||
 | 
			
		||||
usage () {
 | 
			
		||||
    echo $(basename "$0") " [-h] [-help] [-timestamp] template dst"
 | 
			
		||||
@@ -64,8 +63,8 @@ done
 | 
			
		||||
	-e "s|__DOKUWIKI_HOST__|${dokuwikiHost}|g"\
 | 
			
		||||
	-e "s|__DOMAIN__|${domain}|g"\
 | 
			
		||||
	-e "s|__FILE_HOST__|${fileHost}|g"\
 | 
			
		||||
	-e "s|__PAHEKO_API_PASSWORD__|${paheko_API_PASSWORD}|g"\
 | 
			
		||||
	-e "s|__PAHEKO_API_USER__|${paheko_API_USER}|g"\
 | 
			
		||||
#	-e "s|__PAHEKO_API_PASSWORD__|${paheko_API_PASSWORD}|g"\
 | 
			
		||||
#	-e "s|__PAHEKO_API_USER__|${paheko_API_USER}|g"\
 | 
			
		||||
	-e "s|__PAHEKO_HOST__|${pahekoHost}|g"\
 | 
			
		||||
	-e "s|__GIT_HOST__|${gitHost}|g"\
 | 
			
		||||
	-e "s|__GRAV_HOST__|${gravHost}|g"\
 | 
			
		||||
@@ -79,9 +78,9 @@ done
 | 
			
		||||
	-e "s|__SMTP_HOST__|${smtpHost}|g"\
 | 
			
		||||
	-e "s|__SYMPADB__|${sympaDBName}|g"\
 | 
			
		||||
	-e "s|__SYMPA_HOST__|${sympaHost}|g"\
 | 
			
		||||
	-e "s|__SYMPA_MYSQL_DATABASE__|${sympa_MYSQL_DATABASE}|g"\
 | 
			
		||||
	-e "s|__SYMPA_MYSQL_PASSWORD__|${sympa_MYSQL_PASSWORD}|g"\
 | 
			
		||||
	-e "s|__SYMPA_MYSQL_USER__|${sympa_MYSQL_USER}|g"\
 | 
			
		||||
#	-e "s|__SYMPA_MYSQL_DATABASE__|${sympa_MYSQL_DATABASE}|g"\
 | 
			
		||||
#	-e "s|__SYMPA_MYSQL_PASSWORD__|${sympa_MYSQL_PASSWORD}|g"\
 | 
			
		||||
#	-e "s|__SYMPA_MYSQL_USER__|${sympa_MYSQL_USER}|g"\
 | 
			
		||||
	-e "s|__VIGILO_HOST__|${vigiloHost}|g"\
 | 
			
		||||
	-e "s|__WEBMAIL_HOST__|${webmailHost}|g"\
 | 
			
		||||
	-e "s|__CASTOPOD_HOST__|${castopodHost}|g"\
 | 
			
		||||
 
 | 
			
		||||
@@ -61,20 +61,6 @@ doCompose () {
 | 
			
		||||
	${SIMU} ln -fs ../../config/dockers.env .env
 | 
			
		||||
    fi
 | 
			
		||||
    ${SIMU} docker-compose $1
 | 
			
		||||
 | 
			
		||||
    if [ "$2" = "cachet" ] && [ "$1" != "down" ]; then
 | 
			
		||||
	NEW_KEY=$(cd "${KAZ_COMP_DIR}/$2" ; docker-compose logs | grep APP_KEY=base64: | sed "s/^.*'APP_KEY=\(base64:[^']*\)'.*$/\1/" | tail -1)
 | 
			
		||||
	if [ -n "${NEW_KEY}" ]; then
 | 
			
		||||
	    printKazMsg "cachet key change"
 | 
			
		||||
	    # change key
 | 
			
		||||
	    ${SIMU} sed -i \
 | 
			
		||||
		    -e 's%^\(\s*cachet_APP_KEY=\).*$%\1"'"${NEW_KEY}"'"%' \
 | 
			
		||||
		    "${KAZ_KEY_DIR}/SetAllPass.sh"
 | 
			
		||||
	    ${SIMU} "${KAZ_BIN_DIR}/secretGen.sh"
 | 
			
		||||
	    # restart
 | 
			
		||||
	    ${SIMU} docker-compose $1
 | 
			
		||||
	fi
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
doComposes () {
 | 
			
		||||
@@ -177,7 +163,6 @@ statusComposes () {
 | 
			
		||||
 | 
			
		||||
saveComposes () {
 | 
			
		||||
    . "${DOCKERS_ENV}"
 | 
			
		||||
    . "${KAZ_ROOT}/secret/SetAllPass.sh"
 | 
			
		||||
 | 
			
		||||
    savedComposes+=( ${enableMailComposes[@]} )
 | 
			
		||||
    savedComposes+=( ${enableProxyComposes[@]} )
 | 
			
		||||
@@ -195,67 +180,80 @@ saveComposes () {
 | 
			
		||||
	    ;;
 | 
			
		||||
	    sympa)
 | 
			
		||||
       		echo "save sympa"
 | 
			
		||||
		saveDB ${sympaDBName} "${sympa_MYSQL_USER}" "${sympa_MYSQL_PASSWORD}" "${sympa_MYSQL_DATABASE}" sympa mysql
 | 
			
		||||
		. $KAZ_BIN_DIR/getPasswords.sh sympaDB
 | 
			
		||||
		saveDB ${sympaDBName} "${sympaDB_MYSQL_USER}" "${sympaDB_MYSQL_PASSWORD}" "${sympaDB_MYSQL_DATABASE}" sympa mysql
 | 
			
		||||
		;;
 | 
			
		||||
	    web)
 | 
			
		||||
		# rien à faire (fichiers)
 | 
			
		||||
		;;
 | 
			
		||||
	    etherpad)
 | 
			
		||||
		echo "save pad"
 | 
			
		||||
		saveDB ${etherpadDBName} "${etherpad_MYSQL_USER}" "${etherpad_MYSQL_PASSWORD}" "${etherpad_MYSQL_DATABASE}" etherpad mysql
 | 
			
		||||
		. $KAZ_BIN_DIR/getPasswords.sh etherpadDB
 | 
			
		||||
		saveDB ${etherpadDBName} "${etherpadDB_MYSQL_USER}" "${etherpadDB_MYSQL_PASSWORD}" "${etherpadDB_MYSQL_DATABASE}" etherpad mysql
 | 
			
		||||
		;;
 | 
			
		||||
	    framadate)
 | 
			
		||||
		echo "save date"
 | 
			
		||||
		saveDB ${framadateDBName} "${framadate_MYSQL_USER}" "${framadate_MYSQL_PASSWORD}" "${framadate_MYSQL_DATABASE}" framadate mysql
 | 
			
		||||
		echo "save date"		
 | 
			
		||||
		. $KAZ_BIN_DIR/getPasswords.sh framadateDB
 | 
			
		||||
		saveDB ${framadateDBName} "${framadateDB_MYSQL_USER}" "${framadateDB_MYSQL_PASSWORD}" "${framadateDB_MYSQL_DATABASE}" framadate mysql
 | 
			
		||||
		;;
 | 
			
		||||
	    cloud)
 | 
			
		||||
		echo "save cloud"
 | 
			
		||||
		saveDB ${nextcloudDBName} "${nextcloud_MYSQL_USER}" "${nextcloud_MYSQL_PASSWORD}" "${nextcloud_MYSQL_DATABASE}" nextcloud mysql
 | 
			
		||||
		. $KAZ_BIN_DIR/getPasswords.sh nextcloudDB
 | 
			
		||||
		saveDB ${nextcloudDBName} "${nextcloudDB_MYSQL_USER}" "${nextcloudDB_MYSQL_PASSWORD}" "${nextcloudDB_MYSQL_DATABASE}" nextcloud mysql
 | 
			
		||||
		;;
 | 
			
		||||
	    paheko)
 | 
			
		||||
		# rien à faire (fichiers)
 | 
			
		||||
		;;		
 | 
			
		||||
	    mattermost)
 | 
			
		||||
		echo "save mattermost"
 | 
			
		||||
		saveDB matterPG "${mattermost_POSTGRES_USER}" "${mattermost_POSTGRES_PASSWORD}" "${mattermost_POSTGRES_DB}" mattermost postgres
 | 
			
		||||
		. $KAZ_BIN_DIR/getPasswords.sh mattermostDB
 | 
			
		||||
		saveDB matterPG "${mattermostDB_POSTGRES_USER}" "${mattermostDB_POSTGRES_PASSWORD}" "${mattermostDB_POSTGRES_DB}" mattermost postgres
 | 
			
		||||
		;;
 | 
			
		||||
	    mobilizon)
 | 
			
		||||
		echo "save mobilizon"
 | 
			
		||||
		saveDB ${mobilizonDBName} "${mobilizon_POSTGRES_USER}" "${mobilizon_POSTGRES_PASSWORD}" "${mobilizon_POSTGRES_DB}" mobilizon postgres
 | 
			
		||||
		. $KAZ_BIN_DIR/getPasswords.sh mobilizonDB
 | 
			
		||||
		saveDB ${mobilizonDBName} "${mobilizonDB_POSTGRES_USER}" "${mobilizonDB_POSTGRES_PASSWORD}" "${mobilizonDB_POSTGRES_DB}" mobilizon postgres
 | 
			
		||||
		;;
 | 
			
		||||
	    peertube)
 | 
			
		||||
		echo "save peertube"
 | 
			
		||||
		saveDB ${peertubeDBName} "${peertube_POSTGRES_USER}" "${peertube_POSTGRES_PASSWORD}" "${PEERTUBE_DB_HOSTNAME}" peertube postgres
 | 
			
		||||
		. $KAZ_BIN_DIR/getPasswords.sh peertubeDB
 | 
			
		||||
		saveDB ${peertubeDBName} "${peertubeDB_POSTGRES_USER}" "${peertubeDB_POSTGRES_PASSWORD}" "${peertubeDB_PEERTUBE_DB_HOSTNAME}" peertube postgres
 | 
			
		||||
		;;
 | 
			
		||||
	    mastodon)
 | 
			
		||||
		echo "save mastodon"
 | 
			
		||||
		saveDB ${mastodonDBName} "${mastodon_POSTGRES_USER}" "${mastodon_POSTGRES_PASSWORD}" "${mastodon_POSTGRES_DB}" mastodon postgres
 | 
			
		||||
		. $KAZ_BIN_DIR/getPasswords.sh mastodonDB
 | 
			
		||||
		saveDB ${mastodonDBName} "${mastodonDB_POSTGRES_USER}" "${mastodonDB_POSTGRES_PASSWORD}" "${mastodonDB_POSTGRES_DB}" mastodon postgres
 | 
			
		||||
		;;
 | 
			
		||||
	    roundcube)
 | 
			
		||||
		echo "save roundcube"
 | 
			
		||||
		saveDB ${roundcubeDBName} "${roundcube_MYSQL_USER}" "${roundcube_MYSQL_PASSWORD}" "${roundcube_MYSQL_DATABASE}" roundcube mysql
 | 
			
		||||
		. $KAZ_BIN_DIR/getPasswords.sh roundcubeDB
 | 
			
		||||
		saveDB ${roundcubeDBName} "${roundcubeDB_MYSQL_USER}" "${roundcubeDB_MYSQL_PASSWORD}" "${roundcubeDB_MYSQL_DATABASE}" roundcube mysql
 | 
			
		||||
		;;	
 | 
			
		||||
	    vaultwarden)
 | 
			
		||||
		echo "save vaultwarden"
 | 
			
		||||
		saveDB ${vaultwardenDBName} "${vaultwarden_MYSQL_USER}" "${vaultwarden_MYSQL_PASSWORD}" "${vaultwarden_MYSQL_DATABASE}" vaultwarden mysql
 | 
			
		||||
		. $KAZ_BIN_DIR/getPasswords.sh vaultwardenDB
 | 
			
		||||
		saveDB ${vaultwardenDBName} "${vaultwardenDB_MYSQL_USER}" "${vaultwardenDB_MYSQL_PASSWORD}" "${vaultwardenDB_MYSQL_DATABASE}" vaultwarden mysql
 | 
			
		||||
		;;
 | 
			
		||||
	    dokuwiki)
 | 
			
		||||
		# rien à faire (fichiers)
 | 
			
		||||
		;;
 | 
			
		||||
	    *-orga)
 | 
			
		||||
		ORGA=${compose%-orga}
 | 
			
		||||
		echo "save ${ORGA}"
 | 
			
		||||
		echo "save ${ORGA}"		
 | 
			
		||||
		if grep -q "cloud:" "${KAZ_COMP_DIR}/${compose}/docker-compose.yml" 2> /dev/null ; then
 | 
			
		||||
		    echo "    => cloud"
 | 
			
		||||
		    saveDB "${ORGA}-DB" "${nextcloud_MYSQL_USER}" "${nextcloud_MYSQL_PASSWORD}" "${nextcloud_MYSQL_DATABASE}" "${ORGA}-cloud" mysql
 | 
			
		||||
			. $KAZ_KEY_DIR/orgas/$ORGA/env-nextcloudDB
 | 
			
		||||
		    saveDB "${ORGA}-DB" "${MYSQL_USER}" "${MYSQL_PASSWORD}" "${MYSQL_DATABASE}" "${ORGA}-cloud" mysql
 | 
			
		||||
		fi
 | 
			
		||||
		if grep -q "agora:" "${KAZ_COMP_DIR}/${compose}/docker-compose.yml" 2> /dev/null ; then
 | 
			
		||||
		    echo "    => mattermost"
 | 
			
		||||
		    saveDB "${ORGA}-DB" "${mattermost_MYSQL_USER}" "${mattermost_MYSQL_PASSWORD}" "${mattermost_MYSQL_DATABASE}" "${ORGA}-mattermost" mysql
 | 
			
		||||
			. $KAZ_KEY_DIR/orgas/$ORGA/env-mattermostDB
 | 
			
		||||
			saveDB "${ORGA}-DB" "${MYSQL_USER}" "${MYSQL_PASSWORD}" "${MYSQL_DATABASE}" "${ORGA}-mattermost" mysql
 | 
			
		||||
		fi
 | 
			
		||||
		if grep -q "wordpress:" "${KAZ_COMP_DIR}/${compose}/docker-compose.yml" 2> /dev/null ; then
 | 
			
		||||
		    echo "    => wordpress"
 | 
			
		||||
		    saveDB "${ORGA}-DB" "${wp_MYSQL_USER}" "${wp_MYSQL_PASSWORD}" "${wp_MYSQL_DATABASE}" "${ORGA}-wordpress" mysql
 | 
			
		||||
			. $KAZ_KEY_DIR/orgas/$ORGA/env-wpDB
 | 
			
		||||
		    saveDB "${ORGA}-DB" "${MYSQL_USER}" "${MYSQL_PASSWORD}" "${MYSQL_DATABASE}" "${ORGA}-wordpress" mysql
 | 
			
		||||
		fi
 | 
			
		||||
		;;
 | 
			
		||||
	esac
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										87
									
								
								bin/createDBUsers.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								bin/createDBUsers.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,87 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
KAZ_ROOT=$(cd $(dirname $0)/..; pwd)
 | 
			
		||||
. "${KAZ_ROOT}/bin/.commonFunctions.sh"
 | 
			
		||||
setKazVars
 | 
			
		||||
 | 
			
		||||
# pour mise au point
 | 
			
		||||
# SIMU=echo
 | 
			
		||||
 | 
			
		||||
# Améliorations à prévoir
 | 
			
		||||
# - donner en paramètre les services concernés (pour limité les modifications)
 | 
			
		||||
# - pour les DB si on déclare un nouveau login, alors les privilèges sont créé mais les anciens pas révoqués
 | 
			
		||||
 | 
			
		||||
. "${DOCKERS_ENV}"
 | 
			
		||||
. "${KAZ_KEY_DIR}/SetAllPass.sh"
 | 
			
		||||
 | 
			
		||||
createMysqlUser(){
 | 
			
		||||
    # $1 = envName
 | 
			
		||||
    # $2 = containerName of DB
 | 
			
		||||
 | 
			
		||||
	. $KAZ_BIN_DIR/getPasswords.sh $1
 | 
			
		||||
    
 | 
			
		||||
    rootPass="$1_MYSQL_ROOT_PASSWORD"
 | 
			
		||||
    dbName="$1_MYSQL_DATABASE"
 | 
			
		||||
    userName="$1_MYSQL_USER"
 | 
			
		||||
    userPass="$1_MYSQL_PASSWORD"
 | 
			
		||||
 | 
			
		||||
    # seulement si pas de mdp pour root
 | 
			
		||||
    # pb oeuf et poule (il faudrait les anciennes valeurs) :
 | 
			
		||||
    # * si rootPass change, faire à la main
 | 
			
		||||
    # * si dbName change, faire à la main
 | 
			
		||||
    checkDockerRunning "$2" "$2" || return
 | 
			
		||||
    echo "change DB pass on docker $2"
 | 
			
		||||
    echo "grant all privileges on ${!dbName}.* to '${!userName}' identified by '${!userPass}';" | \
 | 
			
		||||
	docker exec -i $2 bash -c "mysql --user=root --password=${!rootPass}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
framadateUpdate(){
 | 
			
		||||
    [[ "${COMP_ENABLE}" =~ " framadate " ]] || return
 | 
			
		||||
    if [ ! -f "${DOCK_LIB}/volumes/framadate_dateConfig/_data/config.php" ]; then
 | 
			
		||||
	return 0
 | 
			
		||||
    fi
 | 
			
		||||
	.$KAZ_BIN_DIR/getPasswords.sh framadateDB framadateServ
 | 
			
		||||
    
 | 
			
		||||
    checkDockerRunning "${framadateServName}" "Framadate" &&
 | 
			
		||||
	${SIMU} docker exec -ti "${framadateServName}" bash -c -i "htpasswd -bc /var/framadate/admin/.htpasswd ${framadateServ_HTTPD_USER} ${framadateServ_HTTPD_PASSWORD}"
 | 
			
		||||
    ${SIMU} sed -i \
 | 
			
		||||
	    -e "s/^#*const DB_USER[ ]*=.*$/const DB_USER= '${framadateDB_MYSQL_USER}';/g" \
 | 
			
		||||
	    -e "s/^#*const DB_PASSWORD[ ]*=.*$/const DB_PASSWORD= '${framadateDB_MYSQL_PASSWORD}';/g" \
 | 
			
		||||
	    "${DOCK_LIB}/volumes/framadate_dateConfig/_data/config.php"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
jirafeauUpdate(){
 | 
			
		||||
    [[ "${COMP_ENABLE}" =~ " jirafeau " ]] || return
 | 
			
		||||
    if [ ! -f "${DOCK_LIB}/volumes/jirafeau_fileConfig/_data/config.local.php" ]; then
 | 
			
		||||
	return 0
 | 
			
		||||
    fi
 | 
			
		||||
	. $KAZ_BIN_DIR/getPasswords.sh jirafeauServ
 | 
			
		||||
    SHA=$(echo -n "${jirafeauServ_HTTPD_PASSWORD}" | sha256sum | cut -d \  -f 1)
 | 
			
		||||
    ${SIMU} sed -i \
 | 
			
		||||
	    -e "s/'admin_password'[ ]*=>[ ]*'[^']*'/'admin_password' => '${SHA}'/g" \
 | 
			
		||||
	    "${DOCK_LIB}/volumes/jirafeau_fileConfig/_data/config.local.php"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
####################
 | 
			
		||||
# main
 | 
			
		||||
 | 
			
		||||
createMysqlUser "etherpadDB" "${etherpadDBName}"
 | 
			
		||||
createMysqlUser "framadateDB" "${framadateDBName}"
 | 
			
		||||
createMysqlUser "giteaDB" "${gitDBName}"
 | 
			
		||||
createMysqlUser "mattermostDB" "${mattermostDBName}"
 | 
			
		||||
createMysqlUser "nextcloudDB" "${nextcloudDBName}"
 | 
			
		||||
createMysqlUser "roundcubeDB" "${roundcubeDBName}"
 | 
			
		||||
createMysqlUser "sympaDB" "${sympaDBName}"
 | 
			
		||||
createMysqlUser "vigiloDB" "${vigiloDBName}"
 | 
			
		||||
createMysqlUser "wpDB" "${wordpressDBName}"
 | 
			
		||||
createMysqlUser "vaultwardenDB" "${vaultwardenDBName}"
 | 
			
		||||
createMysqlUser "castopodDB" "${castopodDBName}"
 | 
			
		||||
createMysqlUser "spipDB" "${spipDBName}"
 | 
			
		||||
createMysqlUser "mastodonDB" "${mastodonDBName}"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
framadateUpdate
 | 
			
		||||
jirafeauUpdate
 | 
			
		||||
exit 0
 | 
			
		||||
@@ -1,104 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
cd $(dirname $0)/..
 | 
			
		||||
 | 
			
		||||
mkdir -p emptySecret
 | 
			
		||||
rsync -aHAX --info=progress2 --delete secret/ emptySecret/
 | 
			
		||||
 | 
			
		||||
cd emptySecret/
 | 
			
		||||
 | 
			
		||||
. ../config/dockers.env
 | 
			
		||||
. ./SetAllPass.sh
 | 
			
		||||
 | 
			
		||||
# pour mise au point
 | 
			
		||||
# SIMU=echo
 | 
			
		||||
 | 
			
		||||
cleanEnvDB(){
 | 
			
		||||
    # $1 = prefix
 | 
			
		||||
    # $2 = envName
 | 
			
		||||
    # $3 = containerName of DB
 | 
			
		||||
    rootPass="--root_password--"
 | 
			
		||||
    dbName="--database_name--"
 | 
			
		||||
    userName="--user_name--"
 | 
			
		||||
    userPass="--user_password--"
 | 
			
		||||
 | 
			
		||||
    ${SIMU} sed -i \
 | 
			
		||||
	    -e "s/MYSQL_ROOT_PASSWORD=.*/MYSQL_ROOT_PASSWORD=${rootPass}/g" \
 | 
			
		||||
	    -e "s/MYSQL_DATABASE=.*/MYSQL_DATABASE=${dbName}/g" \
 | 
			
		||||
	    -e "s/MYSQL_USER=.*/MYSQL_USER=${userName}/g" \
 | 
			
		||||
	    -e "s/MYSQL_PASSWORD=.*/MYSQL_PASSWORD=${userPass}/g" \
 | 
			
		||||
	    "$2"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cleanEnv(){
 | 
			
		||||
    # $1 = prefix
 | 
			
		||||
    # $2 = envName    
 | 
			
		||||
    for varName in $(grep "^[a-zA-Z_]*=" $2 | sed "s/^\([^=]*\)=.*/\1/g")
 | 
			
		||||
    do
 | 
			
		||||
	srcName="$1_${varName}"
 | 
			
		||||
	srcVal="--clean_val--"
 | 
			
		||||
	${SIMU} sed -i \
 | 
			
		||||
		-e "s~^[ ]*${varName}=.*$~${varName}=${srcVal}~" \
 | 
			
		||||
		"$2"
 | 
			
		||||
    done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cleanPasswd(){
 | 
			
		||||
    ${SIMU} sed -i \
 | 
			
		||||
	    -e 's/^\([# ]*[^#= ]*\)=".[^{][^"]*"/\1="--clean_val--"/g' \
 | 
			
		||||
	    ./SetAllPass.sh
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
####################
 | 
			
		||||
# main
 | 
			
		||||
 | 
			
		||||
# read -r -p "Do you want to remove all password? [Y/n] " input
 | 
			
		||||
 
 | 
			
		||||
# case $input in
 | 
			
		||||
#     [yY][eE][sS]|[yY])
 | 
			
		||||
#  echo "Remove all password"
 | 
			
		||||
#  ;;
 | 
			
		||||
#     [nN][oO]|[nN])
 | 
			
		||||
#  echo "Abort"
 | 
			
		||||
#        ;;
 | 
			
		||||
#     *)
 | 
			
		||||
#  echo "Invalid input..."
 | 
			
		||||
#  exit 1
 | 
			
		||||
#  ;;
 | 
			
		||||
# esac
 | 
			
		||||
 | 
			
		||||
cleanPasswd
 | 
			
		||||
 | 
			
		||||
cleanEnvDB "etherpad" "./env-${etherpadDBName}" "${etherpadDBName}"
 | 
			
		||||
cleanEnvDB "framadate" "./env-${framadateDBName}" "${framadateDBName}"
 | 
			
		||||
cleanEnvDB "git" "./env-${gitDBName}" "${gitDBName}"
 | 
			
		||||
cleanEnvDB "mattermost" "./env-${mattermostDBName}" "${mattermostDBName}"
 | 
			
		||||
cleanEnvDB "nextcloud" "./env-${nextcloudDBName}" "${nextcloudDBName}"
 | 
			
		||||
cleanEnvDB "roundcube" "./env-${roundcubeDBName}" "${roundcubeDBName}"
 | 
			
		||||
cleanEnvDB "sso" "./env-${ssoDBName}" "${ssoDBName}"
 | 
			
		||||
cleanEnvDB "sympa" "./env-${sympaDBName}" "${sympaDBName}"
 | 
			
		||||
cleanEnvDB "vigilo" "./env-${vigiloDBName}" "${vigiloDBName}"
 | 
			
		||||
cleanEnvDB "wp" "./env-${wordpressDBName}" "${wordpressDBName}"
 | 
			
		||||
 | 
			
		||||
cleanEnv "etherpad" "./env-${etherpadServName}"
 | 
			
		||||
cleanEnv "gandi" "./env-gandi"
 | 
			
		||||
cleanEnv "jirafeau" "./env-${jirafeauServName}"
 | 
			
		||||
cleanEnv "mattermost" "./env-${mattermostServName}"
 | 
			
		||||
cleanEnv "nextcloud" "./env-${nextcloudServName}"
 | 
			
		||||
cleanEnv "office" "./env-${officeServName}"
 | 
			
		||||
cleanEnv "roundcube" "./env-${roundcubeServName}"
 | 
			
		||||
cleanEnv "sso" "./env-${ssoServName}"
 | 
			
		||||
cleanEnv "vigilo" "./env-${vigiloServName}"
 | 
			
		||||
cleanEnv "wp" "./env-${wordpressServName}"
 | 
			
		||||
 | 
			
		||||
cat > allow_admin_ip <<EOF
 | 
			
		||||
# ip for admin access only
 | 
			
		||||
 | 
			
		||||
# local test
 | 
			
		||||
allow 127.0.0.0/8;
 | 
			
		||||
allow 192.168.0.0/16;
 | 
			
		||||
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
chmod -R go= .
 | 
			
		||||
chmod -R +X .
 | 
			
		||||
@@ -3,14 +3,13 @@
 | 
			
		||||
cd $(dirname $0)
 | 
			
		||||
 | 
			
		||||
./setOwner.sh
 | 
			
		||||
./createEmptyPasswd.sh
 | 
			
		||||
 | 
			
		||||
cd ../..
 | 
			
		||||
 | 
			
		||||
FILE_NAME="/tmp/$(date +'%Y%M%d')-KAZ.tar.bz2"
 | 
			
		||||
FILE_NAME="/tmp/$(date +'%Y%m%d')-KAZ.tar.bz2"
 | 
			
		||||
 | 
			
		||||
tar -cjf "${FILE_NAME}" --transform s/emptySecret/secret/ \
 | 
			
		||||
     ./kaz/emptySecret/ ./kaz/bin ./kaz/config ./kaz/dockers
 | 
			
		||||
tar -cjf "${FILE_NAME}" --transform s/secret.tmpl/secret/ \
 | 
			
		||||
     ./kaz/secret.tmpl/ ./kaz/bin ./kaz/config ./kaz/dockers
 | 
			
		||||
 | 
			
		||||
ls -l "${FILE_NAME}"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,9 @@ setKazVars
 | 
			
		||||
 | 
			
		||||
cd "${KAZ_ROOT}"
 | 
			
		||||
. "${DOCKERS_ENV}"
 | 
			
		||||
. "${KAZ_KEY_DIR}/SetAllPass.sh"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
. $KAZ_BIN_DIR/getPasswords.sh ldapServ sympaServ paheko
 | 
			
		||||
 | 
			
		||||
# DOCK_DIR="${KAZ_COMP_DIR}" # ???
 | 
			
		||||
 | 
			
		||||
@@ -221,6 +223,7 @@ dos2unix "${TFILE_MM}"
 | 
			
		||||
echo "done"
 | 
			
		||||
 | 
			
		||||
# se connecter à l'agora pour ensuite pouvoir passer toutes les commandes mmctl
 | 
			
		||||
. $KAZ_KEY_DIR/env-mattermostAdmin
 | 
			
		||||
echo "docker exec -i mattermostServ bin/mmctl auth login ${httpProto}://${URL_AGORA} --name local-server --username ${mattermost_user} --password ${mattermost_pass}" | tee -a "${CMD_INIT}"
 | 
			
		||||
 | 
			
		||||
# vérif des emails
 | 
			
		||||
@@ -393,9 +396,9 @@ nextcloudEnabled: TRUE\n\
 | 
			
		||||
nextcloudQuota: ${QUOTA} GB\n\
 | 
			
		||||
mobilizonEnabled: TRUE\n\
 | 
			
		||||
agoraEnabled: TRUE\n\
 | 
			
		||||
userPassword: {CRYPT}${pass}\n\n' | ldapmodify -c -H ldap://${LDAP_IP} -D \"cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}\" -x -w ${ldap_LDAP_ADMIN_PASSWORD}" | tee -a "${CMD_LOGIN}"
 | 
			
		||||
userPassword: {CRYPT}${pass}\n\n' | ldapmodify -c -H ldap://${LDAP_IP} -D \"cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}\" -x -w ${ldapServ_LDAP_ADMIN_PASSWORD}" | tee -a "${CMD_LOGIN}"
 | 
			
		||||
    fi
 | 
			
		||||
#userPassword: {CRYPT}\$6\$${pass}\n\n\" | ldapmodify -c -H ldap://${LDAP_IP} -D \"cn=${ldap_LDAP_CONFIG_ADMIN_USERNAME},${ldap_root}\" -x -w ${ldap_LDAP_CONFIG_ADMIN_PASSWORD}" | tee -a "${CMD_LOGIN}"
 | 
			
		||||
#userPassword: {CRYPT}\$6\$${pass}\n\n\" | ldapmodify -c -H ldap://${LDAP_IP} -D \"cn=${ldapServ_LDAP_CONFIG_ADMIN_USERNAME},${ldap_root}\" -x -w ${ldapServ_LDAP_CONFIG_ADMIN_PASSWORD}" | tee -a "${CMD_LOGIN}"
 | 
			
		||||
 | 
			
		||||
    CREATE_ORGA_SERVICES=""
 | 
			
		||||
 | 
			
		||||
@@ -424,15 +427,16 @@ userPassword: {CRYPT}${pass}\n\n' | ldapmodify -c -H ldap://${LDAP_IP} -D \"cn=$
 | 
			
		||||
    MESSAGE_MAIL_ORGA_1="${MESSAGE_MAIL_ORGA_1}${NL}* un bureau virtuel pour stocker des fichiers/calendriers/contacts et partager avec vos connaissances : ${httpProto}://${URL_NC}"
 | 
			
		||||
 | 
			
		||||
    # le user existe t-il déjà sur NC ?
 | 
			
		||||
    curl -o "${TEMP_USER_NC}" -X GET -H 'OCS-APIRequest:true' "${httpProto}://admin:${nextcloud_NEXTCLOUD_ADMIN_PASSWORD}@${URL_NC}/ocs/v1.php/cloud/users?search=${IDENT_KAZ}"
 | 
			
		||||
	. $KAZ_KEY_DIR/env-nextcloudServ
 | 
			
		||||
    curl -o "${TEMP_USER_NC}" -X GET -H 'OCS-APIRequest:true' "${httpProto}://${NEXTCLOUD_ADMIN_USER}:${NEXTCLOUD_ADMIN_PASSWORD}@${URL_NC}/ocs/v1.php/cloud/users?search=${IDENT_KAZ}"
 | 
			
		||||
    if grep -q "<element>${IDENT_KAZ}</element>" "${TEMP_USER_NC}"; then
 | 
			
		||||
	echo "${IDENT_KAZ} existe déjà sur ${URL_NC}" | tee -a "${LOG}"
 | 
			
		||||
    else
 | 
			
		||||
 | 
			
		||||
      # on créé l'utilisateur sur NC sauf si c'est le NC général, on ne créé jamais l'utilisateur7
 | 
			
		||||
	  if [ ${URL_NC} != "${cloudHost}.${domain}" ]; then
 | 
			
		||||
	
 | 
			
		||||
	    echo "curl -X POST -H 'OCS-APIRequest:true' ${httpProto}://admin:${nextcloud_NEXTCLOUD_ADMIN_PASSWORD}@${URL_NC}/ocs/v1.php/cloud/users \
 | 
			
		||||
		. $KAZ_KEY_DIR/orgas/$ORGA/env-nextcloudServ
 | 
			
		||||
	    echo "curl -X POST -H 'OCS-APIRequest:true' ${httpProto}://${NEXTCLOUD_ADMIN_USER}:${NEXTCLOUD_ADMIN_PASSWORD}@${URL_NC}/ocs/v1.php/cloud/users \
 | 
			
		||||
-d userid='${IDENT_KAZ}' \
 | 
			
		||||
-d displayName='${PRENOM} ${NOM}' \
 | 
			
		||||
-d password='${PASSWORD}' \
 | 
			
		||||
@@ -445,19 +449,22 @@ userPassword: {CRYPT}${pass}\n\n' | ldapmodify -c -H ldap://${LDAP_IP} -D \"cn=$
 | 
			
		||||
 | 
			
		||||
	# s'il est admin de son orga, on le met admin
 | 
			
		||||
	if [ "${service[ADMIN_ORGA]}" == "O" -a "${ORGA}" != "" -a "${service[NC_ORGA]}" == "O" ]; then
 | 
			
		||||
	    echo "curl -X POST -H 'OCS-APIRequest:true' ${httpProto}://${nextcloud_NEXTCLOUD_ADMIN_USER}:${nextcloud_NEXTCLOUD_ADMIN_PASSWORD}@${URL_NC}/ocs/v1.php/cloud/users/${IDENT_KAZ}/groups -d groupid='admin'" | tee -a "${CMD_INIT}"
 | 
			
		||||
		. $KAZ_KEY_DIR/orgas/$ORGA/env-nextcloudServ
 | 
			
		||||
	    echo "curl -X POST -H 'OCS-APIRequest:true' ${httpProto}://${NEXTCLOUD_ADMIN_USER}:${NEXTCLOUD_ADMIN_PASSWORD}@${URL_NC}/ocs/v1.php/cloud/users/${IDENT_KAZ}/groups -d groupid='admin'" | tee -a "${CMD_INIT}"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	# faut-il mettre le user NC dans un groupe particulier sur le NC de base ?
 | 
			
		||||
	if [ "${GROUPE_NC_BASE}" != "" -a  "${service[NC_BASE]}" == "O" ]; then
 | 
			
		||||
		# ici on travaille à nouveau sur le NC commun, donc on rechoppe les bons mdp
 | 
			
		||||
		. $KAZ_KEY_DIR/env-nextcloudServ
 | 
			
		||||
	    # le groupe existe t-il déjà ?
 | 
			
		||||
	    curl -o "${TEMP_GROUP_NC}" -X GET -H 'OCS-APIRequest:true' "${httpProto}://admin:${nextcloud_NEXTCLOUD_ADMIN_PASSWORD}@${URL_NC}/ocs/v1.php/cloud/groups?search=${GROUPE_NC_BASE}"
 | 
			
		||||
	    curl -o "${TEMP_GROUP_NC}" -X GET -H 'OCS-APIRequest:true' "${httpProto}://${NEXTCLOUD_ADMIN_USER}:${NEXTCLOUD_ADMIN_PASSWORD}@${URL_NC}/ocs/v1.php/cloud/groups?search=${GROUPE_NC_BASE}"
 | 
			
		||||
	    nb=$(grep "<element>${GROUPE_NC_BASE}</element>" "${TEMP_GROUP_NC}" | wc -l)
 | 
			
		||||
	    if [ "${nb}" == "0" ];then
 | 
			
		||||
		echo "curl -X POST -H 'OCS-APIRequest:true' ${httpProto}://admin:${nextcloud_NEXTCLOUD_ADMIN_PASSWORD}@${URL_NC}/ocs/v1.php/cloud/groups -d groupid=${GROUPE_NC_BASE}" | tee -a "${CMD_INIT}"
 | 
			
		||||
		echo "curl -X POST -H 'OCS-APIRequest:true' ${httpProto}://${NEXTCLOUD_ADMIN_USER}:${NEXTCLOUD_ADMIN_PASSWORD}@${URL_NC}/ocs/v1.php/cloud/groups -d groupid=${GROUPE_NC_BASE}" | tee -a "${CMD_INIT}"
 | 
			
		||||
	    fi
 | 
			
		||||
	    # puis attacher le user au groupe
 | 
			
		||||
	    echo "curl -X POST -H 'OCS-APIRequest:true' ${httpProto}://admin:${nextcloud_NEXTCLOUD_ADMIN_PASSWORD}@${URL_NC}/ocs/v1.php/cloud/users/${IDENT_KAZ}/groups -d groupid=${GROUPE_NC_BASE}" | tee -a "${CMD_INIT}"
 | 
			
		||||
	    echo "curl -X POST -H 'OCS-APIRequest:true' ${httpProto}://${NEXTCLOUD_ADMIN_USER}:${NEXTCLOUD_ADMIN_PASSWORD}@${URL_NC}/ocs/v1.php/cloud/users/${IDENT_KAZ}/groups -d groupid=${GROUPE_NC_BASE}" | tee -a "${CMD_INIT}"
 | 
			
		||||
	fi
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
@@ -483,7 +490,8 @@ userPassword: {CRYPT}${pass}\n\n' | ldapmodify -c -H ldap://${LDAP_IP} -D \"cn=$
 | 
			
		||||
 | 
			
		||||
	# TODO : vérif existance user
 | 
			
		||||
	# 			# le user existe t-il déjà sur le wp ?
 | 
			
		||||
	# 			curl -o "${TEMP_USER_WP}" -X GET "${httpProto}://${wp_WORDPRESS_ADMIN_USER}:${wp_WORDPRESS_ADMIN_PASSWORD}@${URL_WP_ORGA}/ocs/v1.php/cloud/users?search=${IDENT_KAZ}"
 | 
			
		||||
	#			. $KAZ_BIN_DIR/getPasswords.sh wpServ
 | 
			
		||||
	# 			curl -o "${TEMP_USER_WP}" -X GET "${httpProto}://${wpServ_WORDPRESS_ADMIN_USER}:${wpServ_WORDPRESS_ADMIN_PASSWORD}@${URL_WP_ORGA}/ocs/v1.php/cloud/users?search=${IDENT_KAZ}"
 | 
			
		||||
	# 			nb_user_wp_orga=$(grep "<element>${IDENT_KAZ}</element>" "${TEMP_USER_WP}" | wc -l)
 | 
			
		||||
	# 			if [ "${nb_user_wp_orga}" != "0" ];then
 | 
			
		||||
	# 				(
 | 
			
		||||
@@ -501,7 +509,7 @@ userPassword: {CRYPT}${pass}\n\n' | ldapmodify -c -H ldap://${LDAP_IP} -D \"cn=$
 | 
			
		||||
	# 					) | tee -a "${LOG}"
 | 
			
		||||
	#
 | 
			
		||||
	# 					# on supprime l'utilisateur sur NC.
 | 
			
		||||
	# 					echo "curl -X DELETE -H 'OCS-APIRequest:true' ${httpProto}://admin:${nextcloud_NEXTCLOUD_ADMIN_PASSWORD}@${URL_NC}/ocs/v1.php/cloud/users \
 | 
			
		||||
	# 					echo "curl -X DELETE -H 'OCS-APIRequest:true' ${httpProto}://admin:${NEXTCLOUD_ADMIN_PASSWORD}@${URL_NC}/ocs/v1.php/cloud/users \
 | 
			
		||||
	    # 					-d userid='${IDENT_KAZ}' \
 | 
			
		||||
	    # 					" | tee -a "${CMD_INIT}"
 | 
			
		||||
	# 				fi
 | 
			
		||||
@@ -619,13 +627,13 @@ userPassword: {CRYPT}${pass}\n\n' | ldapmodify -c -H ldap://${LDAP_IP} -D \"cn=$
 | 
			
		||||
    # docker exec -i sympaServ /usr/lib/sympa/bin/sympa_soap_client.pl --soap_url=https://listes.kaz.sns/sympasoap --trusted_application=SOAP_USER --trusted_application_password=SOAP_PASSWORD --proxy_vars="USER_EMAIL=contact1@kaz.sns" --service=which
 | 
			
		||||
    if [[ "${mode}" = "dev" ]]; then
 | 
			
		||||
	echo "# DEV, on teste l'inscription à sympa"| tee -a "${CMD_SYMPA}"
 | 
			
		||||
	LISTMASTER=$(echo ${sympa_LISTMASTERS} | cut -d',' -f1)
 | 
			
		||||
	echo "docker exec -i sympaServ /usr/lib/sympa/bin/sympa_soap_client.pl --soap_url=${httpProto}://${URL_LISTE}/sympasoap --trusted_application=${sympa_SOAP_USER} --trusted_application_password=${sympa_SOAP_PASSWORD} --proxy_vars=\"USER_EMAIL=${LISTMASTER}\" --service=add --service_parameters=\"${NL_LIST},${EMAIL_SOUHAITE}\""  | tee -a "${CMD_SYMPA}"
 | 
			
		||||
	LISTMASTER=$(echo ${sympaServ_LISTMASTERS} | cut -d',' -f1)
 | 
			
		||||
	echo "docker exec -i sympaServ /usr/lib/sympa/bin/sympa_soap_client.pl --soap_url=${httpProto}://${URL_LISTE}/sympasoap --trusted_application=${sympaServ_SOAP_USER} --trusted_application_password=${sympaServ_SOAP_PASSWORD} --proxy_vars=\"USER_EMAIL=${LISTMASTER}\" --service=add --service_parameters=\"${NL_LIST},${EMAIL_SOUHAITE}\""  | tee -a "${CMD_SYMPA}"
 | 
			
		||||
    else
 | 
			
		||||
	echo "# PROD, on inscrit à sympa"| tee -a "${CMD_SYMPA}"
 | 
			
		||||
	LISTMASTER=$(echo ${sympa_LISTMASTERS} | cut -d',' -f1)
 | 
			
		||||
	echo "docker exec -i sympaServ /usr/lib/sympa/bin/sympa_soap_client.pl --soap_url=${httpProto}://${URL_LISTE}/sympasoap --trusted_application=${sympa_SOAP_USER} --trusted_application_password=${sympa_SOAP_PASSWORD} --proxy_vars=\"USER_EMAIL=${LISTMASTER}\" --service=add --service_parameters=\"${NL_LIST},${EMAIL_SOUHAITE}\""  | tee -a "${CMD_SYMPA}"
 | 
			
		||||
	echo "docker exec -i sympaServ /usr/lib/sympa/bin/sympa_soap_client.pl --soap_url=${httpProto}://${URL_LISTE}/sympasoap --trusted_application=${sympa_SOAP_USER} --trusted_application_password=${sympa_SOAP_PASSWORD} --proxy_vars=\"USER_EMAIL=${LISTMASTER}\" --service=add --service_parameters=\"${NL_LIST},${EMAIL_SECOURS}\""  | tee -a "${CMD_SYMPA}"
 | 
			
		||||
	LISTMASTER=$(echo ${sympaServ_LISTMASTERS} | cut -d',' -f1)
 | 
			
		||||
	echo "docker exec -i sympaServ /usr/lib/sympa/bin/sympa_soap_client.pl --soap_url=${httpProto}://${URL_LISTE}/sympasoap --trusted_application=${sympaServ_SOAP_USER} --trusted_application_password=${sympaServ_SOAP_PASSWORD} --proxy_vars=\"USER_EMAIL=${LISTMASTER}\" --service=add --service_parameters=\"${NL_LIST},${EMAIL_SOUHAITE}\""  | tee -a "${CMD_SYMPA}"
 | 
			
		||||
	echo "docker exec -i sympaServ /usr/lib/sympa/bin/sympa_soap_client.pl --soap_url=${httpProto}://${URL_LISTE}/sympasoap --trusted_application=${sympaServ_SOAP_USER} --trusted_application_password=${sympaServ_SOAP_PASSWORD} --proxy_vars=\"USER_EMAIL=${LISTMASTER}\" --service=add --service_parameters=\"${NL_LIST},${EMAIL_SECOURS}\""  | tee -a "${CMD_SYMPA}"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if [ "${service[ADMIN_ORGA]}" == "O" ]; then
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,6 @@ KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd)
 | 
			
		||||
. $KAZ_ROOT/bin/.commonFunctions.sh
 | 
			
		||||
setKazVars
 | 
			
		||||
. $DOCKERS_ENV
 | 
			
		||||
. $KAZ_ROOT/secret/SetAllPass.sh
 | 
			
		||||
. $KAZ_ROOT/secret/env-kaz
 | 
			
		||||
 | 
			
		||||
PRG=$(basename $0)
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd)
 | 
			
		||||
. $KAZ_ROOT/bin/.commonFunctions.sh
 | 
			
		||||
setKazVars
 | 
			
		||||
. $DOCKERS_ENV
 | 
			
		||||
. $KAZ_ROOT/secret/SetAllPass.sh
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
PRG=$(basename $0)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd)
 | 
			
		||||
setKazVars
 | 
			
		||||
 | 
			
		||||
. $DOCKERS_ENV
 | 
			
		||||
. $KAZ_ROOT/secret/SetAllPass.sh
 | 
			
		||||
. $KAZ_BIN_DIR/getPasswords.sh ldapServ nextcloudServ sympaServ paheko
 | 
			
		||||
 | 
			
		||||
VERSION="18-05-2025"
 | 
			
		||||
PRG=$(basename $0)
 | 
			
		||||
@@ -24,7 +24,7 @@ URL_PAHEKO="$httpProto://${paheko_API_USER}:${paheko_API_PASSWORD}@kaz-paheko.$(
 | 
			
		||||
NL_LIST=infos@listes.kaz.bzh
 | 
			
		||||
URL_AGORA_API=${URL_AGORA}/api/v4
 | 
			
		||||
EQUIPE=kaz
 | 
			
		||||
LISTMASTER=$(echo ${sympa_LISTMASTERS} | cut -d',' -f1)
 | 
			
		||||
LISTMASTER=$(echo ${sympaServ_LISTMASTERS} | cut -d',' -f1)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#### Test du serveur sur lequel s' execute le script ####
 | 
			
		||||
@@ -47,6 +47,8 @@ rm -rf /tmp/*.json
 | 
			
		||||
############################################ Fonctions #######################################################
 | 
			
		||||
 | 
			
		||||
ExpMail() {
 | 
			
		||||
		
 | 
			
		||||
		. $KAZ_KEY_DIR/env-mail
 | 
			
		||||
        MAIL_DEST=$1
 | 
			
		||||
        MAIL_SUJET=$2
 | 
			
		||||
        MAIL_TEXTE=$3
 | 
			
		||||
@@ -58,6 +60,7 @@ ExpMail() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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 .id | sed -e 's/"//g')
 | 
			
		||||
@@ -91,8 +94,8 @@ searchEmail() {
 | 
			
		||||
			fi
 | 
			
		||||
		done
 | 
			
		||||
		ldapsearch -H ldap://${LDAP_IP} \
 | 
			
		||||
		-x -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" \
 | 
			
		||||
		-w "${ldap_LDAP_ADMIN_PASSWORD}" \
 | 
			
		||||
		-x -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" \
 | 
			
		||||
		-w "${ldapServ_LDAP_ADMIN_PASSWORD}" \
 | 
			
		||||
		-b "${ldap_root}" "(&(objectclass=${SEARCH_OBJECT_CLASS})(cn=*${RMAIL}*))" cn | grep ^cn | sed -e 's/^cn: //' >$TFILE_EMAILS
 | 
			
		||||
		COMPTEUR_LIGNE=0
 | 
			
		||||
		while read LIGNE
 | 
			
		||||
@@ -136,7 +139,8 @@ searchEmail() {
 | 
			
		||||
 | 
			
		||||
searchMattermost() {
 | 
			
		||||
		#Ici $1 est une adresse email
 | 
			
		||||
            	docker exec -ti ${mattermostServName} bin/mmctl --suppress-warnings auth login $httpProto://$URL_AGORA --name local-server --username $mattermost_user --password $mattermost_pass >/dev/null 2>&1
 | 
			
		||||
		. $KAZ_KEY_DIR/env-mattermostAdmin
 | 
			
		||||
        docker exec -ti ${mattermostServName} bin/mmctl --suppress-warnings auth login $httpProto://$URL_AGORA --name local-server --username $mattermost_user --password $mattermost_pass >/dev/null 2>&1
 | 
			
		||||
		docker exec -ti ${mattermostServName} bin/mmctl --suppress-warnings config set ServiceSettings.EnableAPIUserDeletion "true" >/dev/null 2>&1
 | 
			
		||||
		#on créé la list des mails dans mattermost
 | 
			
		||||
		docker exec -ti ${mattermostServName} bin/mmctl --suppress-warnings user list --all >${TFILE_MAILS_MATTERMOST} 2>/dev/null
 | 
			
		||||
@@ -182,12 +186,12 @@ infoEmail() {
 | 
			
		||||
					printKazMsg " DETAILS DU COMPTE DANS NEXTCLOUD PRINCIPAL"
 | 
			
		||||
					echo -e ""
 | 
			
		||||
					#TEMP_USER_NC=$(mktemp /tmp/$RACINE.XXXXXXXXX.TEMP_USER_NC)
 | 
			
		||||
					#curl -s -o $TEMP_USER_NC -X GET -H 'OCS-APIRequest:true' $httpProto://admin:$nextcloud_NEXTCLOUD_ADMIN_PASSWORD@$URL_NC/ocs/v1.php/cloud/users?search=$CHOIX_MAIL
 | 
			
		||||
					#curl -s -o $TEMP_USER_NC -X GET -H 'OCS-APIRequest:true' $httpProto://admin:$nextcloudServ_NEXTCLOUD_ADMIN_PASSWORD@$URL_NC/ocs/v1.php/cloud/users?search=$CHOIX_MAIL
 | 
			
		||||
					#cat $TEMP_USER_NC | grep -i "element" | sed -e s/[\<\>\/]//g | sed -e s/element//g
 | 
			
		||||
					echo -ne "${NC}"
 | 
			
		||||
					echo -ne " - Nextcloud enable : "
 | 
			
		||||
					echo -ne "${GREEN}"
 | 
			
		||||
					ldapsearch -H ldap://${LDAP_IP} -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w "${ldap_LDAP_ADMIN_PASSWORD}" -b "cn=${CHOIX_MAIL},ou=users,${ldap_root}" | grep -i nextcloudEnabled | cut -c 18-30
 | 
			
		||||
					ldapsearch -H ldap://${LDAP_IP} -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w "${ldapServ_LDAP_ADMIN_PASSWORD}" -b "cn=${CHOIX_MAIL},ou=users,${ldap_root}" | grep -i nextcloudEnabled | cut -c 18-30
 | 
			
		||||
					echo -ne "${NC}"
 | 
			
		||||
					echo -e "${NC} ------------------------------------------------"
 | 
			
		||||
					printKazMsg " DETAILS DU COMPTE DANS LDAP ET PAHEKO"
 | 
			
		||||
@@ -203,11 +207,11 @@ infoEmail() {
 | 
			
		||||
					echo -ne "${NC}"
 | 
			
		||||
					echo -n " - Quota Mail (Ldap) : " 
 | 
			
		||||
					echo -ne "${GREEN}"
 | 
			
		||||
					ldapsearch -H ldap://${LDAP_IP} -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w "${ldap_LDAP_ADMIN_PASSWORD}" -b "cn=${CHOIX_MAIL},ou=users,${ldap_root}" | grep -i mailquota | cut -c 11-60
 | 
			
		||||
					ldapsearch -H ldap://${LDAP_IP} -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w "${ldapServ_LDAP_ADMIN_PASSWORD}" -b "cn=${CHOIX_MAIL},ou=users,${ldap_root}" | grep -i mailquota | cut -c 11-60
 | 
			
		||||
					echo -ne "${NC}"
 | 
			
		||||
					echo -n " - Quota Nextcloud (Ldap) : "
 | 
			
		||||
					echo -ne "${GREEN}"
 | 
			
		||||
					ldapsearch -H ldap://${LDAP_IP} -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w "${ldap_LDAP_ADMIN_PASSWORD}" -b "cn=${CHOIX_MAIL},ou=users,${ldap_root}" | grep -i nextcloudquota | cut -c 17-60
 | 
			
		||||
					ldapsearch -H ldap://${LDAP_IP} -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w "${ldapServ_LDAP_ADMIN_PASSWORD}" -b "cn=${CHOIX_MAIL},ou=users,${ldap_root}" | grep -i nextcloudquota | cut -c 17-60
 | 
			
		||||
					echo -ne "${NC}"
 | 
			
		||||
					echo -n " - Mail de secours (Paheko ): "
 | 
			
		||||
					echo -ne "${GREEN}"
 | 
			
		||||
@@ -215,11 +219,11 @@ infoEmail() {
 | 
			
		||||
					echo -ne "${NC}"
 | 
			
		||||
					echo -n " - Mail de secours (Ldap): "
 | 
			
		||||
					echo -ne "${GREEN}"
 | 
			
		||||
					ldapsearch -H ldap://${LDAP_IP} -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w "${ldap_LDAP_ADMIN_PASSWORD}" -b "cn=${CHOIX_MAIL},ou=users,${ldap_root}" | grep -i maildeSecours | sed -e 's/mailDeSecours://'
 | 
			
		||||
					ldapsearch -H ldap://${LDAP_IP} -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w "${ldapServ_LDAP_ADMIN_PASSWORD}" -b "cn=${CHOIX_MAIL},ou=users,${ldap_root}" | grep -i maildeSecours | sed -e 's/mailDeSecours://'
 | 
			
		||||
					echo -ne "${NC}"
 | 
			
		||||
					echo -n " - Alias (Ldap) : "
 | 
			
		||||
					echo -ne "${GREEN}"
 | 
			
		||||
					LDAP_ALIAS=$(ldapsearch -H ldap://${LDAP_IP} -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w "${ldap_LDAP_ADMIN_PASSWORD}" -b "cn=${CHOIX_MAIL},ou=users,${ldap_root}" | grep -i alias | cut -c 11-60)
 | 
			
		||||
					LDAP_ALIAS=$(ldapsearch -H ldap://${LDAP_IP} -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w "${ldapServ_LDAP_ADMIN_PASSWORD}" -b "cn=${CHOIX_MAIL},ou=users,${ldap_root}" | grep -i alias | cut -c 11-60)
 | 
			
		||||
					echo -ne "${NC}"
 | 
			
		||||
					echo -ne "${GREEN}"
 | 
			
		||||
					for ldap_alias in ${LDAP_ALIAS}
 | 
			
		||||
@@ -239,8 +243,8 @@ infoEmail() {
 | 
			
		||||
                			echo "------------------------------------------------"
 | 
			
		||||
					echo  " Alias : ${CHOIX_MAIL} "
 | 
			
		||||
					echo ""
 | 
			
		||||
					for INFOALIAS in $(ldapsearch -H ldap://${LDAP_IP} -x -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" \
 | 
			
		||||
                		        -w "${ldap_LDAP_ADMIN_PASSWORD}" -b "${ldap_root}" "(&(objectclass=PostfixBookMailForward)(cn=*${CHOIX_MAIL}*))" mail \
 | 
			
		||||
					for INFOALIAS in $(ldapsearch -H ldap://${LDAP_IP} -x -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" \
 | 
			
		||||
                		        -w "${ldapServ_LDAP_ADMIN_PASSWORD}" -b "${ldap_root}" "(&(objectclass=PostfixBookMailForward)(cn=*${CHOIX_MAIL}*))" mail \
 | 
			
		||||
					| grep ^mail: | sed -e 's/^mail://')
 | 
			
		||||
					do
 | 
			
		||||
						echo -ne "=====> ${GREEN}  " 
 | 
			
		||||
@@ -307,12 +311,12 @@ searchDestroy() {
 | 
			
		||||
						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_NEXTCLOUD_ADMIN_PASSWORD@$URL_NC/ocs/v1.php/cloud/users?search=${REP_SEARCH_DESTROY} | grep element | sed -s 's/[ \<\>\/]//g' | sed  's/element//g')
 | 
			
		||||
						USER_NEXTCLOUD_SUPPR=$(curl -s -X GET -H 'OCS-APIRequest:true' $httpProto://admin:$nextcloudServ_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}"
 | 
			
		||||
							curl -H 'OCS-APIREQUEST: true' -X DELETE $httpProto://admin:$nextcloud_NEXTCLOUD_ADMIN_PASSWORD@$URL_NC/ocs/v1.php/cloud/users/${USER_NEXTCLOUD_SUPPR} >/dev/null 2>&1
 | 
			
		||||
							curl -H 'OCS-APIREQUEST: true' -X DELETE $httpProto://admin:$nextcloudServ_NEXTCLOUD_ADMIN_PASSWORD@$URL_NC/ocs/v1.php/cloud/users/${USER_NEXTCLOUD_SUPPR} >/dev/null 2>&1
 | 
			
		||||
							if [ "$?" -eq "0" ]
 | 
			
		||||
                        				then
 | 
			
		||||
								printKazMsg "Suppresion ok"
 | 
			
		||||
@@ -327,7 +331,7 @@ searchDestroy() {
 | 
			
		||||
							echo -e "${RED} suppression de ${REP_SEARCH_DESTROY} 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=${sympa_SOAP_USER} --trusted_application_password=${sympa_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=${sympaServ_SOAP_USER} --trusted_application_password=${sympaServ_SOAP_PASSWORD} --proxy_vars=USER_EMAIL=${LISTMASTER} --service=del --service_parameters="${NL_LIST},${REP_SEARCH_DESTROY}"
 | 
			
		||||
							echo -e "${NC}"
 | 
			
		||||
							echo ""
 | 
			
		||||
							echo  -e "${RED} suppression de ${REP_SEARCH_DESTROY} dans le serveur de mail"
 | 
			
		||||
@@ -344,7 +348,7 @@ searchDestroy() {
 | 
			
		||||
                                                echo  -e "${RED} suppression de ${REP_SEARCH_DESTROY} dans le ldap"
 | 
			
		||||
                                                echo -e "${NC}"
 | 
			
		||||
                                                echo ""
 | 
			
		||||
						ldapdelete -H ldap://${LDAP_IP} -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w "${ldap_LDAP_ADMIN_PASSWORD}" "cn=${REP_SEARCH_DESTROY},ou=users,${ldap_root}"
 | 
			
		||||
						ldapdelete -H ldap://${LDAP_IP} -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w "${ldapServ_LDAP_ADMIN_PASSWORD}" "cn=${REP_SEARCH_DESTROY},ou=users,${ldap_root}"
 | 
			
		||||
						if [ "$?" -eq "0" ]
 | 
			
		||||
						then
 | 
			
		||||
							printKazMsg "Suppresion ok"
 | 
			
		||||
@@ -377,8 +381,8 @@ gestPassword() {
 | 
			
		||||
		# MAIL_SECOURS=$(jq .results[].email_secours $FICMAILSECOURS | sed -e 's/\"//g')
 | 
			
		||||
 | 
			
		||||
		MAIL_SECOURS=$(ldapsearch -H ldap://${LDAP_IP} \
 | 
			
		||||
                -x -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" \
 | 
			
		||||
                -w "${ldap_LDAP_ADMIN_PASSWORD}" \
 | 
			
		||||
                -x -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" \
 | 
			
		||||
                -w "${ldapServ_LDAP_ADMIN_PASSWORD}" \
 | 
			
		||||
                -b "${ldap_root}" "(&(objectclass=inetOrgPerson)(cn=*${CHOIX_MAIL}*))" | grep ^mailDeSecours | sed -e 's/^mailDeSecours: //')
 | 
			
		||||
		if [ "$MAIL_SECOURS" = "" ]
 | 
			
		||||
                then
 | 
			
		||||
@@ -405,19 +409,19 @@ gestPassword() {
 | 
			
		||||
		fi
 | 
			
		||||
		if [ "$SEARCH_RESET_INPUT" = "o" ] || [ "$SEARCH_RESET_INPUT" = "O" ]
 | 
			
		||||
		then
 | 
			
		||||
			USER_NEXTCLOUD_MODIF=$(curl -s -X GET -H 'OCS-APIRequest:true' $httpProto://admin:$nextcloud_NEXTCLOUD_ADMIN_PASSWORD@$URL_NC/ocs/v1.php/cloud/users?search=${COMPTE_A_MODIFIER} | grep element | sed -e 's/[ \<\>\/]//g' -e 's/element//g')
 | 
			
		||||
			USER_NEXTCLOUD_MODIF=$(curl -s -X GET -H 'OCS-APIRequest:true' $httpProto://admin:$nextcloudServ_NEXTCLOUD_ADMIN_PASSWORD@$URL_NC/ocs/v1.php/cloud/users?search=${COMPTE_A_MODIFIER} | grep element | sed -e 's/[ \<\>\/]//g' -e 's/element//g')
 | 
			
		||||
			echo -e "$GREEN Compte à modifier = $RED ${COMPTE_A_MODIFIER}  ${NC}"
 | 
			
		||||
			echo -e "$GREEN Mail de secours = $RED ${MAIL_SECOURS}  ${NC}"
 | 
			
		||||
			echo -e "$GREEN Compte $RED $(searchMattermost $COMPTE_A_MODIFIER)  ${NC}"
 | 
			
		||||
			echo -e "$GREEN Compte Nextcloud $RED ${USER_NEXTCLOUD_MODIF} ${NC}"
 | 
			
		||||
			echo -e "$GREEN Le mot de passe sera = $RED ${PASSWORD} ${NC}"
 | 
			
		||||
			docker exec -ti mattermostServ bin/mmctl user change-password $(searchMattermost $COMPTE_A_MODIFIER) -p $PASSWORD >/dev/null 2>&1
 | 
			
		||||
			curl -H 'OCS-APIREQUEST: true' -X PUT $httpProto://admin:$nextcloud_NEXTCLOUD_ADMIN_PASSWORD@$URL_NC/ocs/v1.php/cloud/users/${USER_NEXTCLOUD_MODIF} -d key=password -d value=${PASSWORD} >/dev/null 2>&1
 | 
			
		||||
			curl -H 'OCS-APIREQUEST: true' -X PUT $httpProto://admin:$nextcloudServ_NEXTCLOUD_ADMIN_PASSWORD@$URL_NC/ocs/v1.php/cloud/users/${USER_NEXTCLOUD_MODIF} -d key=password -d value=${PASSWORD} >/dev/null 2>&1
 | 
			
		||||
			pass=$(mkpasswd -m sha512crypt ${PASSWORD})
 | 
			
		||||
			echo -e "\n\ndn: cn=${COMPTE_A_MODIFIER},ou=users,${ldap_root}\n\
 | 
			
		||||
changeType: modify\n\
 | 
			
		||||
replace: userPassword\n\
 | 
			
		||||
userPassword: {CRYPT}${pass}\n\n" | ldapmodify -c -H ldap://${LDAP_IP} -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w "${ldap_LDAP_ADMIN_PASSWORD}"
 | 
			
		||||
userPassword: {CRYPT}${pass}\n\n" | ldapmodify -c -H ldap://${LDAP_IP} -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w "${ldapServ_LDAP_ADMIN_PASSWORD}"
 | 
			
		||||
			echo -e "Envoi d'un message dans mattermost pour la modification du mot de passe"
 | 
			
		||||
			docker exec -ti mattermostServ bin/mmctl post create kaz:Creation-Comptes --message "Le mot de passe du compte ${COMPTE_A_MODIFIER} a été modifié" >/dev/null 2>&1
 | 
			
		||||
			if [ $ADRESSE_SEC == "OUI" ]
 | 
			
		||||
@@ -465,8 +469,8 @@ createMail() {
 | 
			
		||||
		if [[ ${EMAIL_SOUHAITE} =~ ${regexMail} ]] 
 | 
			
		||||
		then
 | 
			
		||||
			ldapsearch -H ldap://${LDAP_IP} \
 | 
			
		||||
                        -x -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" \
 | 
			
		||||
                        -w "${ldap_LDAP_ADMIN_PASSWORD}" \
 | 
			
		||||
                        -x -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" \
 | 
			
		||||
                        -w "${ldapServ_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
 | 
			
		||||
@@ -564,7 +568,7 @@ nextcloudEnabled: ${TRUE_KAZ}\n\
 | 
			
		||||
nextcloudQuota: ${QUOTA} GB\n\
 | 
			
		||||
mobilizonEnabled: ${TRUE_KAZ}\n\
 | 
			
		||||
agoraEnabled: ${TRUE_KAZ}\n\
 | 
			
		||||
userPassword: {CRYPT}${LDAPPASS}\n\n' | ldapmodify -c -H ldap://${LDAP_IP} -D \"cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}\" -x -w ${ldap_LDAP_ADMIN_PASSWORD}" >${TFILE_CREATE_MAIL}
 | 
			
		||||
userPassword: {CRYPT}${LDAPPASS}\n\n' | ldapmodify -c -H ldap://${LDAP_IP} -D \"cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}\" -x -w ${ldapServ_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 
 | 
			
		||||
@@ -610,12 +614,12 @@ createAlias() {
 | 
			
		||||
		if [[ ${AMAIL} =~ ${regexMail} ]] 
 | 
			
		||||
		then
 | 
			
		||||
			RESU_ALIAS=$(ldapsearch -H ldap://${LDAP_IP} \
 | 
			
		||||
			-x -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" \
 | 
			
		||||
			-w "${ldap_LDAP_ADMIN_PASSWORD}" \
 | 
			
		||||
			-x -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" \
 | 
			
		||||
			-w "${ldapServ_LDAP_ADMIN_PASSWORD}" \
 | 
			
		||||
			-b "${ldap_root}" "(&(objectclass=PostfixBookMailForward)(cn=*${AMAIL}*))" | grep ^cn | sed -e 's/^cn: //')
 | 
			
		||||
			RESU_ALIAS_IS_MAIL=$(ldapsearch -H ldap://${LDAP_IP} \
 | 
			
		||||
 	                -x -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" \
 | 
			
		||||
			-w "${ldap_LDAP_ADMIN_PASSWORD}" \
 | 
			
		||||
 	                -x -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" \
 | 
			
		||||
			-w "${ldapServ_LDAP_ADMIN_PASSWORD}" \
 | 
			
		||||
             		-b "${ldap_root}" "(&(objectclass=inetOrgPerson)(cn=*${AMAIL}*))" cn | grep ^cn | sed -e 's/^cn: //')
 | 
			
		||||
 | 
			
		||||
	        	if echo ${RESU_ALIAS} | grep -q "^${AMAIL}$" || echo ${RESU_ALIAS_IS_MAIL} | grep -q "^${AMAIL}$"
 | 
			
		||||
@@ -690,7 +694,7 @@ changeType: add\n\
 | 
			
		||||
objectClass: organizationalRole\n\
 | 
			
		||||
objectClass: PostfixBookMailForward\n\
 | 
			
		||||
mailAlias: ${AMAIL}\n\
 | 
			
		||||
${LDAPALAISMAIL}\n\n" | ldapmodify -c -H ldap://${LDAP_IP} -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w ${ldap_LDAP_ADMIN_PASSWORD}
 | 
			
		||||
${LDAPALAISMAIL}\n\n" | ldapmodify -c -H ldap://${LDAP_IP} -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w ${ldapServ_LDAP_ADMIN_PASSWORD}
 | 
			
		||||
			fait=1
 | 
			
		||||
			printKazMsg "Création de ${AMAIL}"
 | 
			
		||||
			sleep 3			
 | 
			
		||||
@@ -722,8 +726,8 @@ delAlias() {
 | 
			
		||||
                if [[ ${RALIAS} =~ ${regexMail} ]]
 | 
			
		||||
                then
 | 
			
		||||
                	RESU_ALIAS=$(ldapsearch -H ldap://${LDAP_IP} \
 | 
			
		||||
                        -x -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" \
 | 
			
		||||
                        -w "${ldap_LDAP_ADMIN_PASSWORD}" \
 | 
			
		||||
                        -x -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" \
 | 
			
		||||
                        -w "${ldapServ_LDAP_ADMIN_PASSWORD}" \
 | 
			
		||||
                        -b "${ldap_root}" "(&(objectclass=PostfixBookMailForward)(cn=${RALIAS}))" cn | grep ^cn | sed -e 's/^cn: //')
 | 
			
		||||
			if [ ! -z ${RESU_ALIAS} ]
 | 
			
		||||
			then
 | 
			
		||||
@@ -733,7 +737,7 @@ delAlias() {
 | 
			
		||||
					read -p "suppression de ${RESU_ALIAS} ? (o/n): " REPDELALIAS
 | 
			
		||||
					case "${REPDELALIAS}" in
 | 
			
		||||
					o | O )
 | 
			
		||||
                        			ldapdelete -H ldap://${LDAP_IP} -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w "${ldap_LDAP_ADMIN_PASSWORD}" "cn=${RESU_ALIAS},ou=mailForwardings,${ldap_root}"
 | 
			
		||||
                        			ldapdelete -H ldap://${LDAP_IP} -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w "${ldapServ_LDAP_ADMIN_PASSWORD}" "cn=${RESU_ALIAS},ou=mailForwardings,${ldap_root}"
 | 
			
		||||
						printKazMsg "suppression ${RESU_ALIAS} effectuée"
 | 
			
		||||
						sleep 2
 | 
			
		||||
						faitdel=1
 | 
			
		||||
@@ -769,8 +773,8 @@ modifyAlias()
 | 
			
		||||
	ACHANGE=0
 | 
			
		||||
	searchEmail alias
 | 
			
		||||
	LISTE_MAIL_ALIAS=$(ldapsearch -H ldap://${LDAP_IP} \
 | 
			
		||||
        -x -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" \
 | 
			
		||||
        -w "${ldap_LDAP_ADMIN_PASSWORD}" \
 | 
			
		||||
        -x -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" \
 | 
			
		||||
        -w "${ldapServ_LDAP_ADMIN_PASSWORD}" \
 | 
			
		||||
        -b "${ldap_root}" "(&(objectclass=PostfixBookMailForward)(cn=*${CHOIX_MAIL}*))" \
 | 
			
		||||
	| grep -i ^mail: | sed -e 's/^mail: /_/' | tr -d [:space:] | sed -s 's/_/ /g')
 | 
			
		||||
	echo "-------------------------------------------------------------------"
 | 
			
		||||
@@ -845,8 +849,8 @@ modifyAlias()
 | 
			
		||||
				echo "mail: ${key}" >>${FIC_MODIF_LDIF}
 | 
			
		||||
			done
 | 
			
		||||
			echo "-" >>${FIC_MODIF_LDIF}
 | 
			
		||||
		 	ldapmodify -c -H ldap://${LDAP_IP} -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" \
 | 
			
		||||
			-x -w ${ldap_LDAP_ADMIN_PASSWORD} \
 | 
			
		||||
		 	ldapmodify -c -H ldap://${LDAP_IP} -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" \
 | 
			
		||||
			-x -w ${ldapServ_LDAP_ADMIN_PASSWORD} \
 | 
			
		||||
			-f ${FIC_MODIF_LDIF} >/dev/null
 | 
			
		||||
		else
 | 
			
		||||
			printKazMsg "Pas de changement"
 | 
			
		||||
@@ -872,8 +876,8 @@ updateUser() {
 | 
			
		||||
		for attribut in mailDeSecours mailAlias mailQuota nextcloudQuota
 | 
			
		||||
		do
 | 
			
		||||
			ATTRIB+=([${attribut}]=$(ldapsearch -H ldap://${LDAP_IP} \
 | 
			
		||||
	               	-x -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" \
 | 
			
		||||
                	-w "${ldap_LDAP_ADMIN_PASSWORD}" \
 | 
			
		||||
	               	-x -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" \
 | 
			
		||||
                	-w "${ldapServ_LDAP_ADMIN_PASSWORD}" \
 | 
			
		||||
                	-b "${ldap_root}" "(&(objectclass=inetOrgPerson)(cn=*${CHOIX_MAIL}*))" \
 | 
			
		||||
			 | grep ^"${attribut}": | sed -e 's/^'${attribut}': //' | tr -s '[:space:]' ' ' ))
 | 
			
		||||
			# si l' attribut est mailDesecours on l' attrape et on on le stocke pour pouvoir l' enlever de sympa
 | 
			
		||||
@@ -1056,15 +1060,15 @@ updateUser() {
 | 
			
		||||
					done
 | 
			
		||||
					cat ${FIC_MODIF_LDIF}
 | 
			
		||||
					sleep 3
 | 
			
		||||
					ldapmodify -c -H ldap://${LDAP_IP} -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" \
 | 
			
		||||
					-x -w ${ldap_LDAP_ADMIN_PASSWORD} \
 | 
			
		||||
					ldapmodify -c -H ldap://${LDAP_IP} -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" \
 | 
			
		||||
					-x -w ${ldapServ_LDAP_ADMIN_PASSWORD} \
 | 
			
		||||
					-f ${FIC_MODIF_LDIF}
 | 
			
		||||
					if [ ! -z ${MAILDESECOURS} ]
 | 
			
		||||
					then
 | 
			
		||||
						# suppression du mail de secours de la liste infos
 | 
			
		||||
						docker exec -ti sympaServ /usr/lib/sympa/bin/sympa_soap_client.pl --soap_url=${httpProto}://${URL_LISTE}/sympasoap --trusted_application=${sympa_SOAP_USER} --trusted_application_password=${sympa_SOAP_PASSWORD} --proxy_vars=USER_EMAIL=${LISTMASTER} --service=del --service_parameters="${NL_LIST},${MAILDESECOURSACTUEL}"
 | 
			
		||||
						docker exec -ti sympaServ /usr/lib/sympa/bin/sympa_soap_client.pl --soap_url=${httpProto}://${URL_LISTE}/sympasoap --trusted_application=${sympaServ_SOAP_USER} --trusted_application_password=${sympaServ_SOAP_PASSWORD} --proxy_vars=USER_EMAIL=${LISTMASTER} --service=del --service_parameters="${NL_LIST},${MAILDESECOURSACTUEL}"
 | 
			
		||||
						# ajout de l' adresse  de la nouvelle adresse de secours
 | 
			
		||||
						docker exec -ti sympaServ /usr/lib/sympa/bin/sympa_soap_client.pl --soap_url=${httpProto}://${URL_LISTE}/sympasoap --trusted_application=${sympa_SOAP_USER} --trusted_application_password=${sympa_SOAP_PASSWORD} --proxy_vars=USER_EMAIL=${LISTMASTER} --service=add --service_parameters="${NL_LIST},${MAILDESECOURS}"
 | 
			
		||||
						docker exec -ti sympaServ /usr/lib/sympa/bin/sympa_soap_client.pl --soap_url=${httpProto}://${URL_LISTE}/sympasoap --trusted_application=${sympaServ_SOAP_USER} --trusted_application_password=${sympaServ_SOAP_PASSWORD} --proxy_vars=USER_EMAIL=${LISTMASTER} --service=add --service_parameters="${NL_LIST},${MAILDESECOURS}"
 | 
			
		||||
					fi
 | 
			
		||||
					updateUser
 | 
			
		||||
				fi
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										63
									
								
								bin/getPasswords.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								bin/getPasswords.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,63 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
KAZ_ROOT=$(cd "$(dirname $0)/.."; pwd)
 | 
			
		||||
. "${KAZ_ROOT}/bin/.commonFunctions.sh"
 | 
			
		||||
PRG=$(basename $0)
 | 
			
		||||
 | 
			
		||||
usage() {
 | 
			
		||||
echo "${PRG} [OPTIONS] [envname ...] 
 | 
			
		||||
Récupère les variables d'environnement présentes dans /kaz/secret/env-envname et crée des variables à partir de ces noms là.
 | 
			
		||||
Les variables sont du type envname_NOMVARIABLE=valeur
 | 
			
		||||
On peut passer plusieurs fichiers env, à partir du moment ou ils sont tous dans le même répertoire !
 | 
			
		||||
OPTIONS 
 | 
			
		||||
 -h|--help            Cette aide :-)
 | 
			
		||||
 -n|--simu            SIMULATION
 | 
			
		||||
 -d foldername        prend les envfiles dans un sous dossier /kaz/secret/foldername/ (pour les orgas !) 
 | 
			
		||||
                      Les variables seront du type foldername-envname_NOMVARIABLE=valeur
 | 
			
		||||
"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
for ARG in "$@"; do
 | 
			
		||||
    if [ -n "${DIRECTORYARG}" ]; then # après un -d
 | 
			
		||||
        SUBDIRECTORY="${ARG}"
 | 
			
		||||
        DIRECTORYARG=
 | 
			
		||||
    else
 | 
			
		||||
 | 
			
		||||
      case "${ARG}" in
 | 
			
		||||
          '-d' | '--directory' | '-f' | '--folder' | '--foldername')
 | 
			
		||||
              DIRECTORYARG="ON ATTEND UN REPERTOIRE APRES CA" ;;
 | 
			
		||||
          '-h' | '--help' )
 | 
			
		||||
            usage && exit ;;
 | 
			
		||||
          '-n' | '--simu')
 | 
			
		||||
            SIMU="echo" ;;
 | 
			
		||||
          *)
 | 
			
		||||
            ENVFILES="${ENVFILES} ${ARG%}";;
 | 
			
		||||
      esac
 | 
			
		||||
    fi
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
NB_FILES=$(echo "${ENVFILES}" | wc -w )
 | 
			
		||||
 | 
			
		||||
if [[ $NB_FILES = 0 ]]; then
 | 
			
		||||
    usage
 | 
			
		||||
    exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
for ENVFILE in $ENVFILES; do
 | 
			
		||||
    FILENAME="$KAZ_KEY_DIR/env-$ENVFILE"
 | 
			
		||||
    VARNAME="$ENVFILE"_
 | 
			
		||||
    if [ -n "${SUBDIRECTORY}" ]; then
 | 
			
		||||
      FILENAME="$KAZ_KEY_DIR/orgas/$SUBDIRECTORY/env-$ENVFILE"
 | 
			
		||||
      VARNAME="${SUBDIRECTORY}-${ENVFILE}_"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if ! [ -f "$FILENAME" ]; then
 | 
			
		||||
      echo "$FILENAME does not exist."
 | 
			
		||||
      continue
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    # formule magique qui crée des variables envname_NOMVARIABLE=la valeur trouvé (le sed vire les commentaires et les lignes vides)
 | 
			
		||||
    # on pourrait se contenter d'un "source env-file", mais avec un prefix dans les variables pour savoir ce qu'on manipule c'est bien aussi ...
 | 
			
		||||
    $SIMU export $(sed -e 's/#.*//' -e '/^\s*$/d' "$FILENAME" | awk -F= -v ENV="$VARNAME" '{output=output" "ENV$1"="$2} END {print output}')
 | 
			
		||||
done
 | 
			
		||||
@@ -214,7 +214,6 @@ fi
 | 
			
		||||
 | 
			
		||||
if [ ! -d "${KAZ_ROOT}/secret" ]; then
 | 
			
		||||
    rsync -a "${KAZ_ROOT}/secret.tmpl/" "${KAZ_ROOT}/secret/"
 | 
			
		||||
    . "${KAZ_ROOT}/secret/SetAllPass.sh"
 | 
			
		||||
    "${KAZ_BIN_DIR}/secretGen.sh"
 | 
			
		||||
    "${KAZ_BIN_DIR}/updateDockerPassword.sh"
 | 
			
		||||
    "${KAZ_BIN_DIR}/createDBUsers.sh"
 | 
			
		||||
fi
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,8 @@ KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd)
 | 
			
		||||
setKazVars
 | 
			
		||||
 | 
			
		||||
. $DOCKERS_ENV
 | 
			
		||||
. $KAZ_ROOT/secret/SetAllPass.sh
 | 
			
		||||
 | 
			
		||||
. $KAZ_BIN_DIR/getPasswords.sh paheko
 | 
			
		||||
 | 
			
		||||
URL_PAHEKO="$httpProto://${paheko_API_USER}:${paheko_API_PASSWORD}@kaz-paheko.$(echo $domain)"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,7 @@ KAZ_ROOT=/kaz
 | 
			
		||||
setKazVars
 | 
			
		||||
 | 
			
		||||
. $DOCKERS_ENV
 | 
			
		||||
. $KAZ_ROOT/secret/SetAllPass.sh
 | 
			
		||||
. $KAZ_BIN_DIR/getPasswords.sh ldapServ
 | 
			
		||||
 | 
			
		||||
LDAP_IP=$(docker inspect -f '{{.NetworkSettings.Networks.ldapNet.IPAddress}}' ldapServ)
 | 
			
		||||
 | 
			
		||||
@@ -20,4 +20,4 @@ EDITOR=${EDITOR:-vi}
 | 
			
		||||
EDITOR=${EDITOR:-vi}
 | 
			
		||||
export EDITOR=${EDITOR}
 | 
			
		||||
 | 
			
		||||
ldapvi -h $LDAP_IP -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" -w ${ldap_LDAP_ADMIN_PASSWORD} --discover
 | 
			
		||||
ldapvi -h $LDAP_IP -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" -w ${ldapServ_LDAP_ADMIN_PASSWORD} --discover
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ KAZ_ROOT=/kaz
 | 
			
		||||
setKazVars
 | 
			
		||||
 | 
			
		||||
. $DOCKERS_ENV
 | 
			
		||||
. $KAZ_ROOT/secret/SetAllPass.sh
 | 
			
		||||
. $KAZ_BIN_DIR/getPasswords.sh ldapServ paheko
 | 
			
		||||
 | 
			
		||||
ACCOUNTS=/kaz/dockers/postfix/config/postfix-accounts.cf
 | 
			
		||||
 | 
			
		||||
@@ -126,7 +126,7 @@ replace: agoraEnabled\n\
 | 
			
		||||
agoraEnabled: TRUE\n\
 | 
			
		||||
-\n\
 | 
			
		||||
replace: mobilizonEnabled\n\
 | 
			
		||||
mobilizonEnabled: TRUE\n\n" | tee /tmp/ldap/${mail}.ldif | ldapmodify -c -H ldap://${LDAP_IP} -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w ${ldap_LDAP_ADMIN_PASSWORD}
 | 
			
		||||
mobilizonEnabled: TRUE\n\n" | tee /tmp/ldap/${mail}.ldif | ldapmodify -c -H ldap://${LDAP_IP} -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w ${ldapServ_LDAP_ADMIN_PASSWORD}
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
#replace: nextcloudEnabled\n\
 | 
			
		||||
@@ -164,7 +164,7 @@ do
 | 
			
		||||
			echo -e "dn: cn=${mail},ou=users,${ldap_root}\n\
 | 
			
		||||
changeType: modify
 | 
			
		||||
replace: mailAlias\n\
 | 
			
		||||
$LIST\n\n" | ldapmodify -c -H ldap://${LDAP_IP} -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w ${ldap_LDAP_ADMIN_PASSWORD}
 | 
			
		||||
$LIST\n\n" | ldapmodify -c -H ldap://${LDAP_IP} -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w ${ldapServ_LDAP_ADMIN_PASSWORD}
 | 
			
		||||
		else
 | 
			
		||||
			echo "Alias vers un mail externe, go fichier"
 | 
			
		||||
			echo $line >> ${ALIASES_WITHLDAP}
 | 
			
		||||
@@ -185,7 +185,7 @@ replace: mailAlias\n\
 | 
			
		||||
mailAlias: ${src}\n\
 | 
			
		||||
-\n\
 | 
			
		||||
replace: mail\n\
 | 
			
		||||
mail: ${dst}\n\n" | ldapmodify -c -H ldap://${LDAP_IP} -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w ${ldap_LDAP_ADMIN_PASSWORD}
 | 
			
		||||
mail: ${dst}\n\n" | ldapmodify -c -H ldap://${LDAP_IP} -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w ${ldapServ_LDAP_ADMIN_PASSWORD}
 | 
			
		||||
		fi
 | 
			
		||||
	else
 | 
			
		||||
		echo "Forward vers plusieurs adresses, on met dans le fichier"
 | 
			
		||||
@@ -215,7 +215,7 @@ replace: mailAlias\n\
 | 
			
		||||
mailAlias: ${src}\n\
 | 
			
		||||
-\n\
 | 
			
		||||
replace: mail\n\
 | 
			
		||||
${LIST}\n\n" | ldapmodify -c -H ldap://${LDAP_IP} -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w ${ldap_LDAP_ADMIN_PASSWORD}
 | 
			
		||||
${LIST}\n\n" | ldapmodify -c -H ldap://${LDAP_IP} -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" -x -w ${ldapServ_LDAP_ADMIN_PASSWORD}
 | 
			
		||||
 | 
			
		||||
	fi
 | 
			
		||||
done
 | 
			
		||||
 
 | 
			
		||||
@@ -6,15 +6,16 @@ setKazVars
 | 
			
		||||
 | 
			
		||||
. $DOCKERS_ENV
 | 
			
		||||
. $KAZ_ROOT/secret/SetAllPass.sh
 | 
			
		||||
. $KAZ_BIN_DIR/getPasswords.sh ldapServ nextcloudDB
 | 
			
		||||
 | 
			
		||||
LDAP_IP=$(docker inspect -f '{{.NetworkSettings.Networks.ldapNet.IPAddress}}' ldapServ)
 | 
			
		||||
 | 
			
		||||
docker exec -i nextcloudDB mysql --user=${nextcloud_MYSQL_USER} --password=${nextcloud_MYSQL_PASSWORD} ${nextcloud_MYSQL_DATABASE} <<< "select uid from oc_users;" > /tmp/nc_users.txt
 | 
			
		||||
docker exec -i nextcloudDB mysql --user=${nextcloudDB_MYSQL_USER} --password=${nextcloudDB_MYSQL_PASSWORD} ${nextcloudDB_MYSQL_DATABASE} <<< "select uid from oc_users;" > /tmp/nc_users.txt
 | 
			
		||||
 | 
			
		||||
OLDIFS=${IFS}
 | 
			
		||||
IFS=$'\n'
 | 
			
		||||
for line in `cat /tmp/nc_users.txt`; do
 | 
			
		||||
	result=$(ldapsearch -h $LDAP_IP -D "cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}" -w ${ldap_LDAP_ADMIN_PASSWORD} -b $ldap_root -x "(identifiantKaz=${line})" | grep numEntries)
 | 
			
		||||
	result=$(ldapsearch -h $LDAP_IP -D "cn=${ldapServ_LDAP_ADMIN_USERNAME},${ldap_root}" -w ${ldapServ_LDAP_ADMIN_PASSWORD} -b $ldap_root -x "(identifiantKaz=${line})" | grep numEntries)
 | 
			
		||||
	echo "${line} ${result}" | grep -v "numEntries: 1" | grep -v "^uid"
 | 
			
		||||
done
 | 
			
		||||
IFS=${OLDIFS}
 | 
			
		||||
 
 | 
			
		||||
@@ -83,7 +83,8 @@ Init(){
 | 
			
		||||
    [ $? -ne 0 ] && printKazError "$DockerServName ne parvient pas à démarrer correctement : impossible de terminer l'install" && return 1 >& $QUIET
 | 
			
		||||
 | 
			
		||||
    # creation compte admin
 | 
			
		||||
    ${SIMU} curl -i -d "{\"email\":\"${mattermost_MM_ADMIN_EMAIL}\",\"username\":\"${mattermost_user}\",\"password\":\"${mattermost_pass}\",\"allow_marketing\":true}" "${MATTER_URL}/api/v4/users"
 | 
			
		||||
    _getPasswords
 | 
			
		||||
    ${SIMU} curl -i -d "{\"email\":\"${mattermostServ_MM_ADMIN_EMAIL}\",\"username\":\"${mattermost_user}\",\"password\":\"${mattermost_pass}\",\"allow_marketing\":true}" "${MATTER_URL}/api/v4/users"
 | 
			
		||||
 | 
			
		||||
    MM_TOKEN=$(_getMMToken ${MATTER_URL})
 | 
			
		||||
 | 
			
		||||
@@ -98,12 +99,13 @@ Version(){
 | 
			
		||||
 | 
			
		||||
_getMMToken(){
 | 
			
		||||
    #$1 MATTER_URL
 | 
			
		||||
    _getPasswords
 | 
			
		||||
    ${SIMU} curl -i -s -d "{\"login_id\":\"${mattermost_user}\",\"password\":\"${mattermost_pass}\"}" "${1}/api/v4/users/login" | grep 'token' | sed 's/token:\s*\(.*\)\s*/\1/' | tr -d '\r'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
PostMessage(){
 | 
			
		||||
    printKazMsg "Envoi à $TEAM : $MESSAGE" >& $QUIET
 | 
			
		||||
    
 | 
			
		||||
    _getPasswords
 | 
			
		||||
    ${SIMU} docker exec -ti "${DockerServName}" bin/mmctl auth login "${MATTER_URL}" --name local-server --username ${mattermost_user} --password ${mattermost_pass}
 | 
			
		||||
    ${SIMU} docker exec -ti "${DockerServName}" bin/mmctl post create "${TEAM}" --message "${MESSAGE}"
 | 
			
		||||
}
 | 
			
		||||
@@ -113,6 +115,16 @@ MmctlCommand(){
 | 
			
		||||
    ${SIMU} docker exec -u 33 "$DockerServName" bin/mmctl $1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_getPasswords(){
 | 
			
		||||
    # récupération des infos du compte admin
 | 
			
		||||
    if [ -n "$AGORACOMMUN" ] ; then 
 | 
			
		||||
        . $KAZ_KEY_DIR/env-mattermostAdmin
 | 
			
		||||
        . $KAZ_BIN_DIR/getPasswords.sh mattermostServ
 | 
			
		||||
    else
 | 
			
		||||
        . $KAZ_KEY_DIR/orgas/${ORGA}/env-mattermostAdmin
 | 
			
		||||
        . $KAZ_BIN_DIR/getPasswords.sh -d ${ORGA} mattermostServ
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
########## Main #################
 | 
			
		||||
for ARG in "$@"; do
 | 
			
		||||
 
 | 
			
		||||
@@ -63,11 +63,12 @@ Init(){
 | 
			
		||||
    cookies=$(curl -c - ${POD_URL})    
 | 
			
		||||
    CSRF_TOKEN=$(curl --cookie <(echo "$cookies") ${POD_URL}/cp-install | grep "csrf_test_name" | sed "s/.*value=.//" | sed "s/.>//") 
 | 
			
		||||
 | 
			
		||||
    _getPasswords
 | 
			
		||||
    #echo ${CSRF_TOKEN}
 | 
			
		||||
    ${SIMU} curl --cookie <(echo "$cookies") -X POST \
 | 
			
		||||
        -d "username=${castopod_ADMIN_USER}" \
 | 
			
		||||
        -d "password=${castopod_ADMIN_PASSWORD}" \
 | 
			
		||||
        -d "email=${castopod_ADMIN_MAIL}" \
 | 
			
		||||
        -d "username=${ADMIN_USER}" \
 | 
			
		||||
        -d "password=${ADMIN_PASSWORD}" \
 | 
			
		||||
        -d "email=${ADMIN_MAIL}" \
 | 
			
		||||
        -d "csrf_test_name=${CSRF_TOKEN}" \
 | 
			
		||||
        "${POD_URL}/cp-install/create-superadmin"
 | 
			
		||||
 | 
			
		||||
@@ -78,7 +79,13 @@ Version(){
 | 
			
		||||
    echo "Version $DockerServName : ${GREEN}${VERSION}${NC}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
_getPasswords(){
 | 
			
		||||
    if [ -n "$CASTOPOD_COMMUN" ]; then 
 | 
			
		||||
        . $KAZ_KEY_DIR/env-castopodAdmin
 | 
			
		||||
    else
 | 
			
		||||
        . $KAZ_KEY_DIR/orgas/$ORGA/env-castopodAdmin
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
########## Main #################
 | 
			
		||||
for ARG in "$@"; do 
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,7 @@ OPTIONS
 | 
			
		||||
 -n|--simu          SIMULATION
 | 
			
		||||
 -q|--quiet         On ne parle pas (utile avec le -n pour avoir que les commandes)
 | 
			
		||||
 --nas              L'orga se trouve sur le NAS !
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
COMMANDES (on peut en mettre plusieurs dans l'ordre souhaité)
 | 
			
		||||
 -I|--install       L'initialisation du cloud
 | 
			
		||||
 -v|--version       Donne la version du cloud et signale les MàJ
 | 
			
		||||
@@ -75,7 +75,7 @@ Init(){
 | 
			
		||||
        CONF_FILE="${NAS_VOL}/orga_${ORGA}-cloudConfig/_data/config.php"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    firstInstall "$CLOUD_URL" "$CONF_FILE" " NextCloud de $NOM"
 | 
			
		||||
    firstInstall "$CLOUD_URL" "$CONF_FILE" "$NOM"
 | 
			
		||||
    updatePhpConf "$CONF_FILE"
 | 
			
		||||
    InstallApplis
 | 
			
		||||
    echo "${CYAN}  *** Paramétrage richdocuments pour $ORGA${NC}" >& $QUIET
 | 
			
		||||
@@ -100,25 +100,38 @@ firstInstall(){
 | 
			
		||||
    # $2 phpConfFile
 | 
			
		||||
    # $3 orga
 | 
			
		||||
    if ! grep -q "'installed' => true," "$2" 2> /dev/null; then
 | 
			
		||||
        printKazMsg "\n  *** Premier lancement de $3" >& $QUIET
 | 
			
		||||
 | 
			
		||||
        printKazMsg "\n  *** Premier lancement nextcloud $3" >& $QUIET
 | 
			
		||||
        _getPasswords
 | 
			
		||||
 | 
			
		||||
        ${SIMU} waitUrl "$1"
 | 
			
		||||
 | 
			
		||||
        ${SIMU} curl -X POST \
 | 
			
		||||
            -d "install=true" \
 | 
			
		||||
            -d "adminlogin=${nextcloud_NEXTCLOUD_ADMIN_USER}" \
 | 
			
		||||
            -d "adminpass=${nextcloud_NEXTCLOUD_ADMIN_PASSWORD}" \
 | 
			
		||||
            -d "adminlogin=${NEXTCLOUD_ADMIN_USER}" \
 | 
			
		||||
            -d "adminpass=${NEXTCLOUD_ADMIN_PASSWORD}" \
 | 
			
		||||
            -d "directory=/var/www/html/data" \
 | 
			
		||||
            -d "dbtype=mysql" \
 | 
			
		||||
            -d "dbuser=${nextcloud_MYSQL_USER}" \
 | 
			
		||||
            -d "dbpass=${nextcloud_MYSQL_PASSWORD}" \
 | 
			
		||||
            -d "dbname=${nextcloud_MYSQL_DATABASE}" \
 | 
			
		||||
            -d "dbhost=${nextcloud_MYSQL_HOST}" \
 | 
			
		||||
            -d "dbuser=${MYSQL_USER}" \
 | 
			
		||||
            -d "dbpass=${MYSQL_PASSWORD}" \
 | 
			
		||||
            -d "dbname=${MYSQL_DATABASE}" \
 | 
			
		||||
            -d "dbhost=${MYSQL_HOST}" \
 | 
			
		||||
            -d "install-recommended-apps=true" \
 | 
			
		||||
            "$1"
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_getPasswords(){
 | 
			
		||||
    if [ -n "$CLOUDCOMMUN" ]; then 
 | 
			
		||||
        . $KAZ_KEY_DIR/env-nextcloudServ
 | 
			
		||||
        . $KAZ_KEY_DIR/env-nextcloudDB
 | 
			
		||||
    else
 | 
			
		||||
        . $KAZ_KEY_DIR/orgas/$ORGA/env-nextcloudServ
 | 
			
		||||
        . $KAZ_KEY_DIR/orgas/$ORGA/env-nextcloudDB
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
setOfficeUrl(){
 | 
			
		||||
    # Did le 25 mars les offices sont tous normalisé sur les serveurs https://${site}-${officeHost}.${domain}
 | 
			
		||||
    #OFFICE_URL="https://${officeHost}.${domain}"
 | 
			
		||||
@@ -131,13 +144,14 @@ setOfficeUrl(){
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
initLdap(){
 | 
			
		||||
    . $KAZ_BIN_DIR/getPasswords.sh ldapServ
 | 
			
		||||
    # $1 Nom du cloud
 | 
			
		||||
    echo "${CYAN}  *** Installation LDAP pour $1${NC}" >& $QUIET
 | 
			
		||||
    occCommand "app:enable user_ldap" "${DockerServName}"
 | 
			
		||||
    occCommand "ldap:delete-config s01" "${DockerServName}"
 | 
			
		||||
    occCommand "ldap:create-empty-config" "${DockerServName}"
 | 
			
		||||
    occCommand "ldap:set-config s01 ldapAgentName cn=cloud,ou=applications,${ldap_root}" "${DockerServName}"
 | 
			
		||||
    occCommand "ldap:set-config s01 ldapAgentPassword ${ldap_LDAP_CLOUD_PASSWORD}" "${DockerServName}"
 | 
			
		||||
    occCommand "ldap:set-config s01 ldapAgentPassword ${ldapServ_LDAP_CLOUD_PASSWORD}" "${DockerServName}"
 | 
			
		||||
    occCommand "ldap:set-config s01 ldapBase ${ldap_root}" "${DockerServName}"
 | 
			
		||||
    occCommand "ldap:set-config s01 ldapBaseGroups ${ldap_root}" "${DockerServName}"
 | 
			
		||||
    occCommand "ldap:set-config s01 ldapBaseUsers ou=users,${ldap_root}" "${DockerServName}"
 | 
			
		||||
 
 | 
			
		||||
@@ -55,15 +55,7 @@ Init(){
 | 
			
		||||
    PLG_DIR="${VOL_PREFIX}wikiPlugins/_data"
 | 
			
		||||
    CONF_DIR="${VOL_PREFIX}wikiConf/_data"
 | 
			
		||||
 | 
			
		||||
    # Gael, j'avais ajouté ça mais j'ai pas test alors je laisse comme avant ... 
 | 
			
		||||
    # A charge au prochain qui monte un wiki de faire qque chose
 | 
			
		||||
    #WIKI_ROOT="${dokuwiki_WIKI_ROOT}"
 | 
			
		||||
    #WIKI_EMAIL="${dokuwiki_WIKI_EMAIL}"
 | 
			
		||||
    #WIKI_PASS="${dokuwiki_WIKI_PASSWORD}"
 | 
			
		||||
 | 
			
		||||
    WIKI_ROOT=Kaz
 | 
			
		||||
    WIKI_EMAIL=wiki@kaz.local
 | 
			
		||||
    WIKI_PASS=azerty
 | 
			
		||||
    . $KAZ_BIN_DIR/getPasswords.sh dokuwiki
 | 
			
		||||
 | 
			
		||||
    ${SIMU} checkDockerRunning "${DockerServName}" "${NOM}" || exit
 | 
			
		||||
 | 
			
		||||
@@ -77,11 +69,11 @@ Init(){
 | 
			
		||||
            -d "l=fr" \
 | 
			
		||||
            -d "d[title]=${NOM}" \
 | 
			
		||||
            -d "d[acl]=true" \
 | 
			
		||||
            -d "d[superuser]=${WIKI_ROOT}" \
 | 
			
		||||
            -d "d[superuser]=${dokuwiki_WIKI_ROOT}" \
 | 
			
		||||
            -d "d[fullname]=Admin"\
 | 
			
		||||
            -d "d[email]=${WIKI_EMAIL}" \
 | 
			
		||||
            -d "d[password]=${WIKI_PASS}" \
 | 
			
		||||
            -d "d[confirm]=${WIKI_PASS}" \
 | 
			
		||||
            -d "d[email]=${dokuwiki_WIKI_EMAIL}" \
 | 
			
		||||
            -d "d[password]=${dokuwiki_WIKI_PASSWORD}" \
 | 
			
		||||
            -d "d[confirm]=${dokuwiki_WIKI_PASSWORD}" \
 | 
			
		||||
            -d "d[policy]=1" \
 | 
			
		||||
            -d "d[allowreg]=false" \
 | 
			
		||||
            -d "d[license]=0" \
 | 
			
		||||
 
 | 
			
		||||
@@ -61,11 +61,11 @@ Init(){
 | 
			
		||||
    echo "\n  *** Premier lancement de WP" >& $QUIET
 | 
			
		||||
 | 
			
		||||
    ${SIMU} waitUrl "${WP_URL}"
 | 
			
		||||
 | 
			
		||||
    . $KAZ_BIN_DIR/getPasswords.sh wpServ
 | 
			
		||||
    ${SIMU} curl -X POST \
 | 
			
		||||
        -d "user_name=${wp_WORDPRESS_ADMIN_USER}" \
 | 
			
		||||
        -d "admin_password=${wp_WORDPRESS_ADMIN_PASSWORD}" \
 | 
			
		||||
        -d "admin_password2=${wp_WORDPRESS_ADMIN_PASSWORD}" \
 | 
			
		||||
        -d "user_name=${wpServ_WORDPRESS_ADMIN_USER}" \
 | 
			
		||||
        -d "admin_password=${wpServ_WORDPRESS_ADMIN_PASSWORD}" \
 | 
			
		||||
        -d "admin_password2=${wpServ_WORDPRESS_ADMIN_PASSWORD}" \
 | 
			
		||||
        -d "pw_weak=true" \
 | 
			
		||||
        -d "admin_email=admin@kaz.bzh" \
 | 
			
		||||
        -d "blog_public=0" \
 | 
			
		||||
 
 | 
			
		||||
@@ -20,8 +20,7 @@ ${SIMU} "${CV1}" stop orga
 | 
			
		||||
${SIMU} "${CV1}" stop
 | 
			
		||||
 | 
			
		||||
${SIMU} rsync "${EV1}/dockers.env" "${EV2}/"
 | 
			
		||||
${SIMU} rsync "${SV1}/SetAllPass.sh" "${SV2}/"
 | 
			
		||||
${SIMU} "${BV2}/updateDockerPassword.sh"
 | 
			
		||||
${SIMU} rsync "${SV1}/" "${SV2}/"
 | 
			
		||||
 | 
			
		||||
# XXX ? rsync /kaz/secret/allow_admin_ip /kaz-git/secret/allow_admin_ip
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,7 @@ URL_AGORA=https://$matterHost.$domain/api/v4
 | 
			
		||||
EQUIPE=kaz
 | 
			
		||||
 | 
			
		||||
PostMattermost() {
 | 
			
		||||
        . $KAZ_KEY_DIR/env-mattermostAdmin
 | 
			
		||||
        PostM=$1
 | 
			
		||||
        CHANNEL=$2
 | 
			
		||||
        TEAMID=$(curl -s -H "Authorization: Bearer ${mattermost_token}" "${URL_AGORA}/teams/name/${EQUIPE}" | jq .id | sed -e 's/"//g')
 | 
			
		||||
 
 | 
			
		||||
@@ -15,6 +15,8 @@ OLDIFS=$IFS
 | 
			
		||||
IFS=" "
 | 
			
		||||
COUNT_MAILQ=$(docker exec -t mailServ mailq | tail -n1 | gawk '{print $5}')
 | 
			
		||||
 | 
			
		||||
# récupération mots de passes
 | 
			
		||||
. $KAZ_KEY_DIR/env-mattermostAdmin
 | 
			
		||||
docker exec ${mattermostServName} bin/mmctl --suppress-warnings auth login $httpProto://$URL_AGORA --name local-server --username $mattermost_user --password $mattermost_pass >/dev/null 2>&1
 | 
			
		||||
 | 
			
		||||
if [ "${COUNT_MAILQ}" -gt "${MAX_QUEUE}" ]; then
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,7 @@ KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd)
 | 
			
		||||
. $KAZ_ROOT/bin/.commonFunctions.sh
 | 
			
		||||
setKazVars
 | 
			
		||||
. $DOCKERS_ENV
 | 
			
		||||
. $KAZ_ROOT/secret/SetAllPass.sh
 | 
			
		||||
. $KAZ_BIN_DIR/getPasswords.sh borg
 | 
			
		||||
 | 
			
		||||
VERSION="V-10-03-2025"
 | 
			
		||||
PRG=$(basename $0)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,127 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
KAZ_ROOT=$(cd $(dirname $0)/..; pwd)
 | 
			
		||||
. "${KAZ_ROOT}/bin/.commonFunctions.sh"
 | 
			
		||||
setKazVars
 | 
			
		||||
 | 
			
		||||
# pour mise au point
 | 
			
		||||
# SIMU=echo
 | 
			
		||||
 | 
			
		||||
# Améliorations à prévoir
 | 
			
		||||
# - donner en paramètre les services concernés (pour limité les modifications)
 | 
			
		||||
# - pour les DB si on déclare un nouveau login, alors les privilèges sont créé mais les anciens pas révoqués
 | 
			
		||||
 | 
			
		||||
. "${DOCKERS_ENV}"
 | 
			
		||||
. "${KAZ_KEY_DIR}/SetAllPass.sh"
 | 
			
		||||
 | 
			
		||||
updateEnvDB(){
 | 
			
		||||
    # $1 = prefix
 | 
			
		||||
    # $2 = envName
 | 
			
		||||
    # $3 = containerName of DB
 | 
			
		||||
    rootPass="$1_MYSQL_ROOT_PASSWORD"
 | 
			
		||||
    dbName="$1_MYSQL_DATABASE"
 | 
			
		||||
    userName="$1_MYSQL_USER"
 | 
			
		||||
    userPass="$1_MYSQL_PASSWORD"
 | 
			
		||||
 | 
			
		||||
    ${SIMU} sed -i \
 | 
			
		||||
	    -e "s/MYSQL_ROOT_PASSWORD=.*/MYSQL_ROOT_PASSWORD=${!rootPass}/g" \
 | 
			
		||||
	    -e "s/MYSQL_DATABASE=.*/MYSQL_DATABASE=${!dbName}/g" \
 | 
			
		||||
	    -e "s/MYSQL_USER=.*/MYSQL_USER=${!userName}/g" \
 | 
			
		||||
	    -e "s/MYSQL_PASSWORD=.*/MYSQL_PASSWORD=${!userPass}/g" \
 | 
			
		||||
	    "$2"
 | 
			
		||||
 | 
			
		||||
    # seulement si pas de mdp pour root
 | 
			
		||||
    # pb oeuf et poule (il faudrait les anciennes valeurs) :
 | 
			
		||||
    # * si rootPass change, faire à la main
 | 
			
		||||
    # * si dbName change, faire à la main
 | 
			
		||||
    checkDockerRunning "$3" "$3" || return
 | 
			
		||||
    echo "change DB pass on docker $3"
 | 
			
		||||
    echo "grant all privileges on ${!dbName}.* to '${!userName}' identified by '${!userPass}';" | \
 | 
			
		||||
	docker exec -i $3 bash -c "mysql --user=root --password=${!rootPass}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
updateEnv(){
 | 
			
		||||
    # $1 = prefix
 | 
			
		||||
    # $2 = envName
 | 
			
		||||
 | 
			
		||||
    for varName in $(grep "^[a-zA-Z_]*=" $2 | sed "s/^\([^=]*\)=.*/\1/g")
 | 
			
		||||
    do
 | 
			
		||||
	srcName="$1_${varName}"
 | 
			
		||||
	srcVal=$(echo "${!srcName}" | sed -e "s/[&]/\\\&/g")
 | 
			
		||||
	${SIMU} sed -i \
 | 
			
		||||
		-e "s%^[ ]*${varName}=.*\$%${varName}=${srcVal}%" \
 | 
			
		||||
		"$2"
 | 
			
		||||
    done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
framadateUpdate(){
 | 
			
		||||
    [[ "${COMP_ENABLE}" =~ " framadate " ]] || return
 | 
			
		||||
    if [ ! -f "${DOCK_LIB}/volumes/framadate_dateConfig/_data/config.php" ]; then
 | 
			
		||||
	return 0
 | 
			
		||||
    fi
 | 
			
		||||
    checkDockerRunning "${framadateServName}" "Framadate" &&
 | 
			
		||||
	${SIMU} docker exec -ti "${framadateServName}" bash -c -i "htpasswd -bc /var/framadate/admin/.htpasswd ${framadate_HTTPD_USER} ${framadate_HTTPD_PASSWORD}"
 | 
			
		||||
    ${SIMU} sed -i \
 | 
			
		||||
	    -e "s/^#*const DB_USER[ ]*=.*$/const DB_USER= '${framadate_MYSQL_USER}';/g" \
 | 
			
		||||
	    -e "s/^#*const DB_PASSWORD[ ]*=.*$/const DB_PASSWORD= '${framadate_MYSQL_PASSWORD}';/g" \
 | 
			
		||||
	    "${DOCK_LIB}/volumes/framadate_dateConfig/_data/config.php"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
jirafeauUpdate(){
 | 
			
		||||
    [[ "${COMP_ENABLE}" =~ " jirafeau " ]] || return
 | 
			
		||||
    if [ ! -f "${DOCK_LIB}/volumes/jirafeau_fileConfig/_data/config.local.php" ]; then
 | 
			
		||||
	return 0
 | 
			
		||||
    fi
 | 
			
		||||
    SHA=$(echo -n "${jirafeau_HTTPD_PASSWORD}" | sha256sum | cut -d \  -f 1)
 | 
			
		||||
    ${SIMU} sed -i \
 | 
			
		||||
	    -e "s/'admin_password'[ ]*=>[ ]*'[^']*'/'admin_password' => '${SHA}'/g" \
 | 
			
		||||
	    "${DOCK_LIB}/volumes/jirafeau_fileConfig/_data/config.local.php"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
####################
 | 
			
		||||
# main
 | 
			
		||||
 | 
			
		||||
updateEnvDB "etherpad" "${KAZ_KEY_DIR}/env-${etherpadDBName}" "${etherpadDBName}"
 | 
			
		||||
updateEnvDB "framadate" "${KAZ_KEY_DIR}/env-${framadateDBName}" "${framadateDBName}"
 | 
			
		||||
updateEnvDB "gitea" "${KAZ_KEY_DIR}/env-${gitDBName}" "${gitDBName}"
 | 
			
		||||
updateEnvDB "mattermost" "${KAZ_KEY_DIR}/env-${mattermostDBName}" "${mattermostDBName}"
 | 
			
		||||
updateEnvDB "nextcloud" "${KAZ_KEY_DIR}/env-${nextcloudDBName}" "${nextcloudDBName}"
 | 
			
		||||
updateEnvDB "roundcube" "${KAZ_KEY_DIR}/env-${roundcubeDBName}" "${roundcubeDBName}"
 | 
			
		||||
updateEnvDB "sympa" "${KAZ_KEY_DIR}/env-${sympaDBName}" "${sympaDBName}"
 | 
			
		||||
updateEnvDB "vigilo" "${KAZ_KEY_DIR}/env-${vigiloDBName}" "${vigiloDBName}"
 | 
			
		||||
updateEnvDB "wp" "${KAZ_KEY_DIR}/env-${wordpressDBName}" "${wordpressDBName}"
 | 
			
		||||
updateEnvDB "vaultwarden" "${KAZ_KEY_DIR}/env-${vaultwardenDBName}" "${vaultwardenDBName}"
 | 
			
		||||
updateEnvDB "castopod" "${KAZ_KEY_DIR}/env-${castopodDBName}" "${castopodDBName}"
 | 
			
		||||
updateEnvDB "spip" "${KAZ_KEY_DIR}/env-${spipDBName}" "${spipDBName}"
 | 
			
		||||
updateEnvDB "mastodon" "${KAZ_KEY_DIR}/env-${mastodonDBName}" "${mastodonDBName}"
 | 
			
		||||
 | 
			
		||||
updateEnv "apikaz" "${KAZ_KEY_DIR}/env-${apikazServName}"
 | 
			
		||||
updateEnv "ethercalc" "${KAZ_KEY_DIR}/env-${ethercalcServName}"
 | 
			
		||||
updateEnv "etherpad" "${KAZ_KEY_DIR}/env-${etherpadServName}"
 | 
			
		||||
updateEnv "framadate" "${KAZ_KEY_DIR}/env-${framadateServName}"
 | 
			
		||||
updateEnv "gandi" "${KAZ_KEY_DIR}/env-gandi"
 | 
			
		||||
updateEnv "gitea" "${KAZ_KEY_DIR}/env-${gitServName}"
 | 
			
		||||
updateEnv "jirafeau" "${KAZ_KEY_DIR}/env-${jirafeauServName}"
 | 
			
		||||
updateEnv "mattermost" "${KAZ_KEY_DIR}/env-${mattermostServName}"
 | 
			
		||||
updateEnv "nextcloud" "${KAZ_KEY_DIR}/env-${nextcloudServName}"
 | 
			
		||||
updateEnv "office" "${KAZ_KEY_DIR}/env-${officeServName}"
 | 
			
		||||
updateEnv "roundcube" "${KAZ_KEY_DIR}/env-${roundcubeServName}"
 | 
			
		||||
updateEnv "vigilo" "${KAZ_KEY_DIR}/env-${vigiloServName}"
 | 
			
		||||
updateEnv "wp" "${KAZ_KEY_DIR}/env-${wordpressServName}"
 | 
			
		||||
updateEnv "ldap" "${KAZ_KEY_DIR}/env-${ldapServName}"
 | 
			
		||||
updateEnv "sympa" "${KAZ_KEY_DIR}/env-${sympaServName}"
 | 
			
		||||
updateEnv "mail" "${KAZ_KEY_DIR}/env-${smtpServName}"
 | 
			
		||||
updateEnv "mobilizon" "${KAZ_KEY_DIR}/env-${mobilizonServName}"
 | 
			
		||||
updateEnv "mobilizon" "${KAZ_KEY_DIR}/env-${mobilizonDBName}"
 | 
			
		||||
updateEnv "vaultwarden" "${KAZ_KEY_DIR}/env-${vaultwardenServName}"
 | 
			
		||||
updateEnv "castopod" "${KAZ_KEY_DIR}/env-${castopodServName}"
 | 
			
		||||
updateEnv "spip" "${KAZ_KEY_DIR}/env-${spipServName}"
 | 
			
		||||
updateEnv "ldap" "${KAZ_KEY_DIR}/env-${ldapUIName}"
 | 
			
		||||
updateEnv "peertube" "${KAZ_KEY_DIR}/env-${peertubeServName}"
 | 
			
		||||
updateEnv "peertube" "${KAZ_KEY_DIR}/env-${peertubeDBName}" "${peertubeDBName}"
 | 
			
		||||
updateEnv "mastodon" "${KAZ_KEY_DIR}/env-${mastodonServName}"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
framadateUpdate
 | 
			
		||||
jirafeauUpdate
 | 
			
		||||
exit 0
 | 
			
		||||
		Reference in New Issue
	
	Block a user