From d0dc847b6e6932934beb660f573a9e57cf5a6c55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Sat, 7 May 2022 09:27:24 +0200 Subject: [PATCH] SYNC 20220507 --- bin/createUser.sh | 6 +- bin/interoGarradin.sh | 81 +++++++++++-------- bin/updateCloudApp.sh | 2 +- config/skip-file.txt | 1 + dockers/etherpad/Dockerfile | 5 ++ dockers/garradin/Dockerfile | 30 ++++++- dockers/garradin/build.sh | 37 +++++++++ dockers/garradin/config/factory_cron.sh | 15 ++++ dockers/garradin/docker-compose.yml | 2 + .../garradin/download_inutilise_cf_build.sh | 37 +++++++++ dockers/mattermost/app/Dockerfile | 2 +- dockers/postfix/Dockerfile | 2 +- 12 files changed, 178 insertions(+), 42 deletions(-) create mode 100755 dockers/garradin/config/factory_cron.sh create mode 100755 dockers/garradin/download_inutilise_cf_build.sh diff --git a/bin/createUser.sh b/bin/createUser.sh index 423c411..b0aa8cf 100755 --- a/bin/createUser.sh +++ b/bin/createUser.sh @@ -242,8 +242,8 @@ do EQUIPE_AGORA=${EQUIPE_AGORA,,} QUOTA=$(awk -F ";" '{print $15}' <<< ${ligne} | xargs) -# IDENT_KAZ=$(unaccent utf8 ${PRENOM,,}.${NOM,,}) - IDENT_KAZ=$(unaccent utf8 ${NOM,,}) + IDENT_KAZ=$(unaccent utf8 ${PRENOM,,}.${NOM,,}) +# IDENT_KAZ=$(unaccent utf8 ${NOM,,}) EMAIL_SOUHAITE=${tab_email[EMAIL_SOUHAITE]} EMAIL_SECOURS=${tab_email[EMAIL_SECOURS]} @@ -612,7 +612,7 @@ if [ "${NB_SERVICES_DEDIES}" != "0" ];then fi #on envoie le mail de bienvenu -MAIL_KAZ="Bonjour ${PRENOM}, +MAIL_KAZ="Bonjour, Bienvenue chez KAZ! diff --git a/bin/interoGarradin.sh b/bin/interoGarradin.sh index aed290a..7a71b7c 100755 --- a/bin/interoGarradin.sh +++ b/bin/interoGarradin.sh @@ -54,13 +54,17 @@ Int_Garradin_Action() { # $1 est une action; ACTION=$1 OPTION=$2 - #[ "$OPTION" = "silence" ] || echo -e "${RED}Action = ${GREEN} ${ACTION}${NC}" # on envoie la requête sur le serveur garradin avec la clause à créer curl -s ${URL_GARRADIN}/api/sql -d "SELECT * from membres where action_auto='${ACTION}';" >>${TFILE_INT_GARRAGIN_ACTION} REP_ID=$(jq -c '.results[].id ' ${TFILE_INT_GARRAGIN_ACTION}) - [ "$OPTION" = "silence" ] || echo -e "${RED}Nombre de compte ${ACTION} ${NC}= ${GREEN} $(echo ${REP_ID} | wc -w) ${NC}" if [ ! -z "${REP_ID}" ] then + [ "$OPTION" = "silence" ] || echo -e "${RED}Nombre de compte ${ACTION} ${NC}= ${GREEN} $(echo ${REP_ID} | wc -w) ${NC}" + if [ -f "$FILE_CREATEUSER" ] + then + #[ "$OPTION" = "silence" ] || echo "Le fichier des users existe , je le renomme en $FILE_CREATEUSER.$(date +%d-%m-%Y-%H:%M:%S)" + mv $FILE_CREATEUSER $FILE_CREATEUSER.$(date +%d-%m-%Y-%H:%M:%S) + fi echo "# -------- Fichier généré le $(date +%d-%m-%Y-%H:%M:%S) ----------">${FILE_CREATEUSER} echo "${TEXTE}" >>${FILE_CREATEUSER} for VAL_ID in ${REP_ID} @@ -74,47 +78,58 @@ Int_Garradin_Action() { # on compte le nom de champs dans la zone nom pour gérer les noms et prénoms composés # si il y a 3 champs, on associe les 2 premieres valeurs avec un - et on laisse le 3ème identique # si il y a 4 champs on associe les 1 et le 2 avec un tiret et le 3 et 4 avec un tiret - COMPTE_NOM=$(echo $nom | awk -F' ' '{for (i=1; i != NF; i++); print i;}') - case "${COMPTE_NOM}" in - 2) - nom_ok=$(echo $nom | awk -F' ' '{print $1}') - prenom_ok=$(echo $nom | awk -F' ' '{print $2}') - ;; - 3) - nom_ok=$(echo $nom | awk -F' ' '{print $1"-"$2}') - prenom_ok=$(echo $nom | awk -F' ' '{print $3}') - ;; - 4) - nom_ok=$(echo $nom | awk -F' ' '{print $1"-"$2}') - prenom_ok=$(echo $nom | awk -F' ' '{print $3"-"$4}') - ;; - esac - cloud=$(echo $cloud | sed -e 's/null/N/g' | sed -e 's/1/O/g') - garradin=$(echo $garradin | sed -e 's/null/N/g' | sed -e 's/1/O/g') - wordpress=$(echo $wordpress | sed -e 's/null/N/g' | sed -e 's/1/O/g') - agora=$(echo $agora | sed -e 's/null/N/g' | sed -e 's/1/O/g') - docuwiki=$(echo $docuwiki | sed -e 's/null/N/g' | sed -e 's/1/O/g') - if [ "$nom_orga" != "null" ] + # on met les champs nom_ok et prenom_ok à blanc + nom_ok="" + prenom_ok="" + # on regarde si le nom de l' orga est renseigné , si c' est le cas ( non null) alors le nom + # est le nom de l' orga et le prénom est forcé à la valeur Organisation + if [ "$nom_orga" = null ] then - equipe_agora=$nom_orga - groupe_nc_base=" " - nc_base="N" - admin_orga="O" - else + [ "$OPTION" = "silence" ] || echo -e "${NC}Abonné ${GREEN}${nom}${NC}" + COMPTE_NOM=$(echo $nom | awk -F' ' '{for (i=1; i != NF; i++); print i;}') + case "${COMPTE_NOM}" in + 2) + nom_ok=$(echo $nom | awk -F' ' '{print $1}') + prenom_ok=$(echo $nom | awk -F' ' '{print $2}') + ;; + *) + echo "Il faut corriger le champ nom de garradin, je quitte et supprime le fichier ${FILE_CREATEUSER}" + rm -f $FILE_CREATEUSER + exit + esac + # comme l' orga est à null nom orga est a vide, pas d' admin orga, on met dans l' agora générale + # pas d' équipe agora et de groupe nextcloud spécifique + nom_orga=" " admin_orga="N" nc_base="O" equipe_agora=" " groupe_nc_base=" " + else + # L' orga est renseigné dans garradin donc les nom et prenoms sont forcé a nom_orga et Organisation + # un équipe agora portera le nom de l' orga, le compte ne sera pas créé dans le nextcloud général + # et le compte est admin de son orga + + [ "$OPTION" = "silence" ] || echo -e "${NC}Orga : ${GREEN}${nom_orga}${NC}" + nom_ok=$nom_orga + prenom_ok=organisation + equipe_agora=$nom_orga + groupe_nc_base=" " + nc_base="N" + admin_orga="O" fi + # Pour le reste on renomme les null en N ( non ) et les valeurs 1 en O ( Oui) + cloud=$(echo $cloud | sed -e 's/null/N/g' | sed -e 's/1/O/g') + garradin=$(echo $garradin | sed -e 's/null/N/g' | sed -e 's/1/O/g') + wordpress=$(echo $wordpress | sed -e 's/null/N/g' | sed -e 's/1/O/g') + agora=$(echo $agora | sed -e 's/null/N/g' | sed -e 's/1/O/g') + docuwiki=$(echo $docuwiki | sed -e 's/null/N/g' | sed -e 's/1/O/g') + # et enfin on écrit dans le fichier echo "$nom_ok;$prenom_ok;$email;$email_secours;$nom_orga;$admin_orga;$cloud;$garradin;$wordpress;$agora;$docuwiki;$nc_base;$groupe_nc_base;$equipe_agora;$quota_disque">>${FILE_CREATEUSER} done + else + echo "Rien à créer" fi } -if [ -f "$FILE_CREATEUSER" ] -then - echo "Le fichier des users existe , je le renomme en $FILE_CREATEUSER.$(date +%d-%m-%Y-%H:%M:%S)" - mv $FILE_CREATEUSER $FILE_CREATEUSER.$(date +%d-%m-%Y-%H:%M:%S) -fi #Int_Garradin_Action "A créer" "silence" Int_Garradin_Action "A créer" diff --git a/bin/updateCloudApp.sh b/bin/updateCloudApp.sh index 2e039b6..9264f78 100755 --- a/bin/updateCloudApp.sh +++ b/bin/updateCloudApp.sh @@ -5,7 +5,7 @@ setKazVars . $DOCKERS_ENV . $KAZ_ROOT/secret/SetAllPass.sh -LISTE_APPS="tasks calendar contacts bookmarks richdocuments richdocumentscode external drawio rainloop" +LISTE_APPS="tasks calendar contacts bookmarks richdocuments richdocumentscode external drawio rainloop ransomware_protection" echo -e "$NC" for cloud in $(docker ps | grep -i cloud |awk '{print $12}') diff --git a/config/skip-file.txt b/config/skip-file.txt index 416a4f8..64cc4e4 100644 --- a/config/skip-file.txt +++ b/config/skip-file.txt @@ -84,3 +84,4 @@ config/skip-email.txt dockers/sympa/filter/domainname bin/DEADJOE dockers/sympa/reload.sh.non.utilisé +dockers/garradin/input-form_php7.4.diff diff --git a/dockers/etherpad/Dockerfile b/dockers/etherpad/Dockerfile index f3b3605..6a9af9f 100644 --- a/dockers/etherpad/Dockerfile +++ b/dockers/etherpad/Dockerfile @@ -53,6 +53,11 @@ WORKDIR "${EP_DIR}" COPY --chown=etherpad:0 git/etherpad-lite/ ./ RUN src/bin/installDeps.sh && rm -rf ~/.npm/_cacache +# RUN { [ -z "${ETHERPAD_PLUGINS}" ] || \ +# npm install --no-save --legacy-peer-deps ${ETHERPAD_PLUGINS}; } && \ +# src/bin/installDeps.sh && \ +# rm -rf ~/.npm + RUN [ -z "${ETHERPAD_PLUGINS}" ] || for PLUGIN_NAME in ${ETHERPAD_PLUGINS}; do npm install "${PLUGIN_NAME}" || exit 1; done # Copy the configuration file. diff --git a/dockers/garradin/Dockerfile b/dockers/garradin/Dockerfile index 7d98b80..d9b29b7 100644 --- a/dockers/garradin/Dockerfile +++ b/dockers/garradin/Dockerfile @@ -1,6 +1,12 @@ -FROM php:7.4-apache +#FROM php:7.4-apache +#FROM php:8.1-apache +FROM php:8.0-apache + +# pour upgrader garradin, il suffit de modifier le numéro de version ici +ENV GARRADIN_VERSION 1.1.24 ENV GARRADIN_DOWNLOAD_DIR download/garradin +ENV GARRADIN_DIR /usr/share/garradin ######################################## # APT local cache @@ -29,8 +35,8 @@ RUN docker-php-ext-install intl RUN docker-php-ext-install -j$(nproc) pdo ctype RUN /usr/local/bin/composer-setup.sh -ENV GARRADIN_VERSION 1.1.22 -ENV GARRADIN_DIR /usr/share/garradin +#on télécharge le version de garradin (fait dans download.sh) +#curl -O https://fossil.kd2.org/garradin/uv/garradin-${GARRADIN_VERSION}.tar.gz --output ${GARRADIN_DOWNLOAD_DIR}/ ADD "${GARRADIN_DOWNLOAD_DIR}/garradin-${GARRADIN_VERSION}.tar.gz" /usr/share/ RUN mv /usr/share/garradin-${GARRADIN_VERSION} ${GARRADIN_DIR} @@ -45,9 +51,27 @@ php_value memory_limit 256M\n\ FallbackResource /_route.php\n\ '> ${GARRADIN_DIR}/www/.htaccess +#install prince pour génération pdf +RUN curl https://www.princexml.com/download/prince_14.2-1_debian10_amd64.deb --output prince.deb +RUN apt-get install libfontconfig1 libgif7 libjpeg62-turbo liblcms2-2 libtiff5 -y +RUN dpkg -i prince.deb + +#install du patch pour l'input en php7.4 +COPY dockers/garradin/input-form_php7.4.diff ${GARRADIN_DIR}/include/lib/Garradin/ +RUN patch /usr/share/garradin/include/lib/Garradin/Template.php /usr/share/garradin/include/lib/Garradin/input-form_php7.4.diff + +COPY dockers/garradin/config/factory_cron.sh ${GARRADIN_DIR}/ COPY dockers/garradin/config/setupWebRights.sh ${GARRADIN_DIR}/ RUN mkdir ${GARRADIN_DIR}/users +#install cron pour factory_cron.sh +RUN apt-get install cron joe rsyslog -y +RUN sed -i '/imklog/s/^/#/' /etc/rsyslog.conf +RUN echo "0 0 * * * cd ${GARRADIN_DIR} && ${GARRADIN_DIR}/factory_cron.sh" >> /var/spool/cron/crontabs/root +RUN chmod 600 /var/spool/cron/crontabs/root +RUN sed -i "/exec/i\service cron start\n" /usr/local/bin/docker-php-entrypoint +RUN ln -sf /usr/local/bin/php /usr/bin/ + # Set owner web server RUN chown -R www-data: ${GARRADIN_DIR} diff --git a/dockers/garradin/build.sh b/dockers/garradin/build.sh index 7c1feb4..f5aff37 100755 --- a/dockers/garradin/build.sh +++ b/dockers/garradin/build.sh @@ -4,6 +4,43 @@ KAZ_ROOT=$(cd "$(dirname $0)/../.."; pwd) . "${KAZ_ROOT}/bin/.commonFunctions.sh" setKazVars +###########################################################################" +#on récupère la dernière version de garradin et tous les plugin + +GAR_VER=$(grep "^ENV GARRADIN_VERSION" Dockerfile | awk '{print $3}') +FCT_VER="0.7.3" +echo "VERSION GARRADIN : $GAR_VER" +echo "VERSION FACTURATION : $FCT_VER" + +downloadFile () { + # $1 URL to download + if [ ! -f "$(basename "$1")" ]; then + printKazMsg " - load $1" + curl -L -O "$1" + fi +} + +mkdir -p "${KAZ_DNLD_DIR}/garradin" +cd "${KAZ_DNLD_DIR}/garradin" + +#pour être certain de récupérer les dernières versions de plugin +rm * -f + +printKazMsg "\n *** Download garradin on ${KAZ_DNLD_DIR}" + +downloadFile "https://fossil.kd2.org/garradin/uv/garradin-${GAR_VER}.tar.gz" + +downloadFile "https://fossil.kd2.org/garradin-plugins/uv/caisse.tar.gz" +#downloadFile "https://fossil.kd2.org/garradin-plugins/uv/dompdf.tar.gz" +downloadFile "https://fossil.kd2.org/garradin-plugins/uv/helloasso.tar.gz" +downloadFile "https://fossil.kd2.org/garradin-plugins/uv/ouvertures.tar.gz" +downloadFile "https://fossil.kd2.org/garradin-plugins/uv/reservations.tar.gz" +downloadFile "https://fossil.kd2.org/garradin-plugins/uv/stock_velos.tar.gz" +downloadFile "https://fossil.kd2.org/garradin-plugins/uv/taima.tar.gz" +downloadFile "https://gitlab.com/JBthePenguin/garradin-plugin-materiels/-/raw/main/materiels.tar.gz" +downloadFile "https://noizette.net/archive/garradin-plugin-facturation/${FCT_VER}/facturation.tar.gz" + +########################################################################### printKazMsg "\n *** Création du Dockerfile garradin" cd "${KAZ_ROOT}" diff --git a/dockers/garradin/config/factory_cron.sh b/dockers/garradin/config/factory_cron.sh new file mode 100755 index 0000000..d807473 --- /dev/null +++ b/dockers/garradin/config/factory_cron.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +# Répertoire où sont stockées les données des utilisateurs +# veiller à ce que ce soit le même que dans config.local.php +FACTORY_USER_DIRECTORY="users" + +# Chemin vers le script cron.php de Garradin +GARRADIN_CRON_SCRIPT="scripts/cron.php" + +for user in $(cd ${FACTORY_USER_DIRECTORY} && ls -1d */) +do + GARRADIN_FACTORY_USER=$(basename "$user") /usr/bin/php $GARRADIN_CRON_SCRIPT + echo $GARRADIN_FACTORY_USER +done + diff --git a/dockers/garradin/docker-compose.yml b/dockers/garradin/docker-compose.yml index 2cb0c37..cff18ca 100644 --- a/dockers/garradin/docker-compose.yml +++ b/dockers/garradin/docker-compose.yml @@ -9,7 +9,9 @@ services: volumes: - ./config/garradin.conf:/etc/apache2/sites-available/000-default.conf - ./config/config.local.php:/usr/share/garradin/config.local.php + - ./config/factory_cron.sh:/usr/share/garradin/factory_cron.sh # - ./config/cron.php:/usr/share/garradin/scripts/cron.php + - assoUsers:/usr/share/garradin/users - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro diff --git a/dockers/garradin/download_inutilise_cf_build.sh b/dockers/garradin/download_inutilise_cf_build.sh new file mode 100755 index 0000000..8d072e7 --- /dev/null +++ b/dockers/garradin/download_inutilise_cf_build.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +SERV_DIR=$(cd $(dirname $0); pwd) +KAZ_ROOT=$(cd $(dirname $0)/../..; pwd) +. "${KAZ_ROOT}/bin/.commonFunctions.sh" +setKazVars + +GAR_VER=$(grep "^ENV GARRADIN_VERSION" Dockerfile | awk '{print $3}') +FCT_VER="0.7.1" +echo "VERSION GARRADIN : $GAR_VER" +echo "VERSION FACTURATION : $FCT_VER" + +downloadFile () { + # $1 URL to download + if [ ! -f "$(basename "$1")" ]; then + printKazMsg " - load $1" + curl -L -O "$1" + fi +} + +mkdir -p "${KAZ_DNLD_DIR}/garradin" +cd "${KAZ_DNLD_DIR}/garradin" + +printKazMsg "\n *** Download garradin on ${KAZ_DNLD_DIR}" + +downloadFile "https://fossil.kd2.org/garradin/uv/garradin-${GAR_VER}.tar.gz" + +downloadFile "https://fossil.kd2.org/garradin-plugins/uv/caisse.tar.gz" +#downloadFile "https://fossil.kd2.org/garradin-plugins/uv/dompdf.tar.gz" +downloadFile "https://fossil.kd2.org/garradin-plugins/uv/helloasso.tar.gz" +downloadFile "https://fossil.kd2.org/garradin-plugins/uv/ouvertures.tar.gz" +downloadFile "https://fossil.kd2.org/garradin-plugins/uv/reservations.tar.gz" +downloadFile "https://fossil.kd2.org/garradin-plugins/uv/stock_velos.tar.gz" +downloadFile "https://fossil.kd2.org/garradin-plugins/uv/taima.tar.gz" +downloadFile "https://gitlab.com/JBthePenguin/garradin-plugin-materiels/-/raw/main/materiels.tar.gz" + +downloadFile "https://noizette.net/archive/garradin-plugin-facturation/${FCT_VER}/facturation.tar.gz" diff --git a/dockers/mattermost/app/Dockerfile b/dockers/mattermost/app/Dockerfile index 1cf7172..6dcbc50 100644 --- a/dockers/mattermost/app/Dockerfile +++ b/dockers/mattermost/app/Dockerfile @@ -2,7 +2,7 @@ FROM alpine:3.10 # Some ENV variables ENV PATH="/mattermost/bin:${PATH}" -ENV MM_VERSION=6.5.0 +ENV MM_VERSION=6.6.0 ENV MM_INSTALL_TYPE=docker # Build argument to set Mattermost edition diff --git a/dockers/postfix/Dockerfile b/dockers/postfix/Dockerfile index 7f0fa81..dbccee6 100644 --- a/dockers/postfix/Dockerfile +++ b/dockers/postfix/Dockerfile @@ -1,4 +1,4 @@ -FROM docker.io/mailserver/docker-mailserver:10.5 +FROM docker.io/mailserver/docker-mailserver:11.0 ######################################## # APT local cache