#!/bin/bash # -- Ajout d'un nouvel utilisateur superadmin # (qui doit correspondre à un utilisateur référencé dans l'annuaire LDAP) # Si docker et execution directe (hors conteneur) depuis le repertoire data/ (bind du repertoire docker) # => on rappelle ce meme script avec le CLI docker puis on exit [ -f ../docker-compose.yml ] && (docker exec -it labinvent $0 $* ; true) && exit # Execution SANS docker, ou bien AVEC docker depuis le conteneur echo "IN $(pwd)" # INPUT args # $1 = platforme (par défaut linux) # Mac ou Linux ? # Linux MACOS= # Mac #MACOS=ON [[ $1 == "macos" ]] && MACOS=ON # Mode DEBUG (=ON pour activer) # - DEBUG OFF DEBUG= # - DEBUG ON #DEBUG=ON [ $DEBUG ] && echo "DEBUG MODE ON" #[ ! $DEBUG ] && echo "DEBUG MODE OFF" # Nom du script sql sqlscript=./database/add_new_superadmin_ldap_user if [ ! -f config/app.php ] ; then #if [ ! -f ../config/app.php ] ; then # echo "Vous devez executer ce script depuis le dossier database/" echo "Vous devez executer ce script depuis la racine du projet" exit 1 fi # Demander le login de ce nouveau superadmin while : ; do echo "Entrez le 'login' (LDAP) du nouvel utilisateur Super Administrateur :" read rep [[ ! -z $rep ]] && break done new_sa_login=$rep echo echo "Tapez une touche pour confirmer sa création dans la base de données..." read key # Get login, pass, dbname, and hostname username=$(grep "/\*d\*/'username'" ./config/app.php | cut -d"'" -f4) password=$(grep "/\*d\*/'password'" ./config/app.php | cut -d"'" -f4) database=$(grep "/\*d\*/'database'" ./config/app.php | cut -d"'" -f4) host=$(grep "/\*d\*/'host'" ./config/app.php | cut -d"'" -f4) #if [[ $DEBUG == 1 ]] ; then if [ $DEBUG ] ; then echo "new superadmin : $new_sa_login" echo "db: $database" echo "user: $username" echo "pass: $password" echo "host: $host" #exit fi cp -p $sqlscript.sql $sqlscript-build.sql # marche pas bouh... ##QUOTE="" ##[ $MACOS ] && QUOTE="''" ##sed -e "s/_database_/$database/" -i $QUOTE $sqlscript-build.sql ##sed -e "s/_sa_login_/$new_sa_login/" -i $QUOTE $sqlscript-build.sql # Execute sql update script if [ $MACOS ] ; then # MacOS only : sed -e "s/_database_/$database/" -i '' $sqlscript-build.sql sed -e "s/_new_sa_login_/$new_sa_login/" -i '' $sqlscript-build.sql else # Linux : sed -e "s/_database_/$database/" -i $sqlscript-build.sql sed -e "s/_new_sa_login_/$new_sa_login/" -i $sqlscript-build.sql fi #[ ! $DEBUG ] && mysql --user=$username --password=$password -h $host < $sqlscript-build.sql if [ ! $DEBUG ] ; then #echo "exec sql" mysql --user=$username --password=$password -h $host < $sqlscript-build.sql fi #echo $? #error if [ $? -ne 0 ] ; then echo "Une erreur s'est produite" echo "ABORT !" exit 1 fi [ ! $DEBUG ] && rm $sqlscript-build.sql # Delete cakephp cache #### (EP 20210129) avant tout ca se faisait avec sudo... ####sudo rm ../tmp/cache/models/* chmod -R 777 ./tmp rm ./tmp/cache/models/* > /dev/null 2>&1 rm ./tmp/cache/persistent/* > /dev/null 2>&1 # Rendre accessible a nouveau les dossiers webroot/ et vendor/ ####chmod -R 777 ../tmp ####chmod -R 777 ../vendor chmod -R 777 ./vendor/aferrandini/phpqrcode ####chmod -R 777 ../webroot #img/qrcodes et img/photos : chmod -R 777 ./webroot/img chmod -R 777 ./webroot/files echo echo "L'utilisateur '$new_sa_login' a été ajouté dans la BD" echo echo "Si l'application est en mode LDAP, vous devriez maintenant pouvoir vous connecter avec ce login (et le mdp du LDAP)." echo [ $DEBUG ] && (echo "Contenu du script sql $sqlscript-build.sql :" ; echo ; cat $sqlscript-build.sql ; echo)