ADD_NEW_SUPERADMIN_LDAP_USER 3.51 KB
#!/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)