Skip to content
Snippets Groups Projects
Commit 4096cbe7 authored by Rachid Aliouat's avatar Rachid Aliouat :unicorn:
Browse files

ajout du programme ajout-mdp-user-xml.pl

parent 73658bcb
Branches
No related tags found
No related merge requests found
......@@ -23,8 +23,17 @@ Le programme lit le fichier config.conf contenant ses clé api : voir config.exe
Le programme va créer un user dans Alma avec le contenu du fichier XML.
Il génére aussi le fichier erreurs.txt pour alimenter les echecs (en mode ajout).
3) Programme ajout de password :
Programme qui reçoit un fichier csv tabulé à 2 colonnes : primary_id et password
Il va compléter toutes les fiches dont le nom est de type
primary_id.xml (exemple ER113-CIRC.xml pour primary_id=ER113-CIRC)
Pour y inserer le mot de passe précisé dans le fichier tabulé. Attention : Alma impose une longueur de mdp d'au moins 8 caractéres.
3) Programme d'import lecteur en masse
perl ajout-mdp-user-xml.pl liste-mdp.txt
4) Programme d'import lecteur en masse
Le programme permet de créer ou mettre à jours des lecteurs dans Alma avec préservation des blocages et des notes en cas de mise à jour :
Attention : dans le dépôt git , il y a une autre version du programme qui n'est pas portable injection-alma-user-ulille.pl : cette version est destinée à l'import des lecteurs extérieur . Elle exclue les lecteurs qui ont un numéro de carte ulille (prefixe 11,12,13,21,22) ou un numero de carte contenant des lettres.
......
#!/usr/bin/perl -w
##################
# Rachid Aliouat
# Le 28/02/2025
# -Lire un fichier csv tabulé contenant deux colonne : primary_id et passwd
# -Ajouter pour chaque fichier primary_id.XML, le password présent dans le csv
#######################
use strict;
use warnings;
use XML::Twig; # bibliothèque pour le XML
use utf8;
use Text::Unidecode;
##### LIRE LE FICHIER txt/csv avec les primary_id et password
my %hash_liste=();
my $primary_id="";
my $passwd="";
my $nom_fic_txt=$ARGV[0];
open (FIC, $nom_fic_txt) or die "Ouverture fichier de la liste primary_id et password impossible , cause : $! \n";
print "lecture du fichier des primary_id et password:\n";
print "-" x 20, "\n";
my @tab_inter = <FIC>;
close(FIC);
my $i=0;
for ($i=1;$i<=$#tab_inter;$i++) { # on passe la ligne d'entete
print $tab_inter[$i];
my @ligne=split('\t',$tab_inter[$i]); # decoupage ligne
if (length($ligne[0])>1) {
$hash_liste{epure($ligne[0])}=epure($ligne[1]); # alimentation de la table de hash avec les primary_id et password
}
}
print "-" x 20, "\n";
### charger chaque fichier xml et inserer le passwd
while (($primary_id,$passwd) = each(%hash_liste)) {
my $nom_fic=$primary_id.".xml";
my $twig=XML::Twig->new( # on créer un objet TWIG dans lequel on met toute la structure XML
pretty_print => 'indented',
);
$twig->parsefile($nom_fic); # ici tout est dans la structure twig
#$twig->print; # affichage du contenu
my $fiche = $twig->sprint;
$fiche =~ s/<password><\/password>/<password>$passwd<\/password>/;
print $fiche;
## Remplacer la fiche sur disque
open (FIC,'>:encoding(UTF-8)' ,"$primary_id".".xml") or die "Ouverture fichier de la liste primary_id impossible , cause : $! \n";
print FIC $fiche; # affichage du contenu
close(FIC);
}
############################
########## Fonctions
############################
########### fonction Retourne la chaine de caractère passée en paramètre en ne laissant que les caractères autorisés
sub epure {
my ($res)=@_;
$res=~ s/\n//g;
$res=~ s/\r//g;
$res=~ s/\"//g;
return $res;
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment