MajNomProf.sh
De OpenWikiBSD.
Sommaire |
Usage
Les moulinettes de création de compte se3 et Gepi ne sont pas identiques. Un nom composé ne sera pas traité identiquement. Typiquement Ben Amar Zohair deviendra benamaz sur Gepi et ben_amaz sur se3.
Ce script parcoure l'ensemble des comptes (profs ou élèves) et vérifie qu'il s'agit bien du même utilisateur (compare le numind de gepi et le employeeNumber de se3) entre gepi et se3 et met à jour toutes les tables de gepi en fonction des données (uid, en fait) de l'annuaire.
Syntaxe
./majNomProf.sh
Prérequis
- se3
- gepi
- params.txt Contient les paramètres MySQL et LDAP de mes différents scripts.
Vérifications préalables
- NomUSerGepi existe dans Gepi
Script
#!/usr/local/bin/bash # Parcourt toute la base GEPI users et effectue le remplacement d'un nom de professeur/élève par son nom LDAP en cas de différence. # Modifie également le mode de loginde "gepi" vers "ldap" # 05/10/09 # Polyp # GPL # On s'attaque à qui ? : "professeur" OU "eleve" GEPISTATUT=professeur MAILADMIN=mon@mail # Récupération des paramètres depuis le fichier eponyme FICPARAMS=params.txt IPLDAP=`cat $FICPARAMS |grep IPLDAP|cut -d":" -f2` BASEDN=`cat $FICPARAMS |grep BASEDN|cut -d":" -f2-99` LDAPPASS=`cat $FICPARAMS |grep LDAPPASS|cut -d":" -f2` ADMINLDAP=`cat $FICPARAMS |grep ADMINLDAP|cut -d":" -f2` SQLUSER=`cat $FICPARAMS |grep SQLUSER |cut -d":" -f2` SQLPASS=`cat $FICPARAMS |grep SQLPASS|cut -d":" -f2` BDD=`cat $FICPARAMS |grep BDD|cut -d":" -f2` REQTOT="" # On aligne le mode de login sur l'annuaire LDAPPROFS="use $BDD; update utilisateurs set auth_mode=\"ldap\" where statut=\"$GEPISTATUT\";" REQTOT=$REQTOT"\r "$LDAPPROFS REQSQLLDAPPROFS=`mysql -u $SQLUSER -p$SQLPASS --batch -e "$LDAPPROFS"` # Cherchons les professeur/eleve dans la base SQL de Gepi SQLPROFS="use $BDD; select login from utilisateurs where statut=\"$GEPISTATUT\" ;" REQSQLPROFS=`mysql -u $SQLUSER -p$SQLPASS --batch -e "$SQLPROFS"|grep -v "login"` for PROF in $REQSQLPROFS do MYSQL="use $BDD; select numind from utilisateurs where login=\"$PROF\";" REQSQL=`mysql -u $SQLUSER -p$SQLPASS --batch -e "$MYSQL"|grep -v numind` LDAP=`ldapsearch -h $IPLDAP -x -b ou=People,$BASEDN -D cn=$ADMINLDAP,$BASEDN -w $LDAPPASS "employeeNumber=$REQSQL" |grep "uid:"|cut -d":" -f2|cut -d" " -f2` if [ "$GEPISTATUT" == "professeur" ] then if [ "$PROF" != "$LDAP" ] then REQTOT=$REQTOT"$PROF ===> $LDAP" MYSQL=" use $BDD;update utilisateurs set login=\"$LDAP\" where statut=\"$GEPISTATUT\" and login=\"$PROF\"; update j_professeurs_matieres set id_professeur=\"$LDAP\" where id_professeur=\"$PROF\"; delete from j_professeurs_matieres where id_professeur=\"$LDAP\" and id_matiere=\"$PROF\"; update j_groupes_professeurs set login=\"$LDAP\" where login=\"$PROF\"; update j_eleves_professeurs set professeur=\"$LDAP\" where professeur=\"$PROF\"; update ct_entry set id_login=\"$LDAP\" where id_login=\"$PROF\"; update ct_devoirs_entry set id_login=\"$LDAP\" where id_login=\"$PROF\"; update edt_cours set login_prof=\"$LDAP\" where login_prof=\"$PROF\"; update preferences set login=\"$LDAP\" where login=\"$PROF\"; update log set LOGIN=\"$LDAP\" where LOGIN=\"$PROF\"; update tempo2 set col1=\"$LDAP\" where col1=\"$PROF\"; update tentatives_intrusion set login=\"$LDAP\" where login=\"$PROF\"; update inscription_j_login_items set login=\"$LDAP\" where login=\"$PROF\"; " REQTOT=$REQTOT" "$MYSQL mysql -u $SQLUSER -p$SQLPASS --batch -e "$MYSQL" fi else echo "$PROF :OK" fi done echo $REQTOT |mail -s "Maj GEPI" $MAILADMIN

