[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/usr/share/se3/scripts/ -> invertClasses.pl (source)

   1  #!/usr/bin/perl -w
   2  
   3  # $Id: invertClasses.pl 7061 2012-04-02 09:22:45Z dbo $
   4  # Met à jour l'arborescence des partages Classes
   5  # en en inversant le nom et le prenom dans le cas d'un login prenom.nom
   6  #
   7  #     - eleve : login d'un eleve, la Classe est lue dans l'annuaire
   8  #
   9  #       Denis Bonnenfant (denis.bonnenfant@diderot.org) 7 septembre 2007 : ajoût d'un cas possible de migration 
  10  
  11  # supprime les Warnings du module Se.pm
  12  BEGIN { $SIG{'__WARN__'} = sub { warn $_[0] if $DOWARN } }
  13  use Se;
  14  $DOWARN = 1; # Warnings activés à nouveau
  15  
  16  $PathClasses = '/var/se3/Classes';
  17  die("Syntaxe : invertClasses.pl login") if ($#ARGV != 0);
  18  ($LOGIN) = @ARGV;
  19  
  20  $lcs_ldap = Net::LDAP->new("$slapdIp");
  21  $lcs_ldap->bind(
  22          dn       => $adminDn,
  23          password => $adminPw,
  24          version  => '3');
  25  
  26  # Recherche du dossier Eleve
  27  # test de l'inversion prenom.nom
  28  @NOM = split(/\./, $LOGIN);
  29  if ( @NOM == 2 ) {
  30   # on inverse  
  31   $ELEVE = @NOM[1] . "." . @NOM[0];
  32   @REP = <$PathClasses/Classe_*/$LOGIN>;
  33   @REPINV = <$PathClasses/Classe_*/$ELEVE>;
  34   if ( @REP > 0 ) {
  35    foreach $rep (@REP) {
  36     # print  "inversion : " . ( 1 + $#REP ) ." répertoires trouvés pour $LOGIN !<br>\n";
  37     # print "$rep\n"; 
  38     $tmpClasse = $rep;
  39     $tmpClasse =~ s!^$PathClasses/Classe_(.+)/$LOGIN$!$1!;
  40     $res = $lcs_ldap->search(base => "$groupsDn",
  41           scope    => 'one',
  42           filter   => "(&(cn=Classe_*)(memberUid=$LOGIN))");
  43     warn $res->error if $res->code;
  44     if ( ($res->entries) == 1 ) {
  45      print "Inversion de $prenom.$nom -> $ELEVE<br>\n";     
  46      system("/bin/mv '$PathClasses/Classe_$tmpClasse/$LOGIN' '$PathClasses/Classe_$tmpClasse/$ELEVE'") == 0 or warn "  Erreur: /bin/mv '$PathClasses/Classe_$tmpClasse/$LOGIN' '$PathClasses/Classe_$tmpClasse/$ELEVE'\n";
  47      print "classe : $tmpClasse\n"; 
  48      print "inversion de " . $PathClasses . "/Classe_" . $tmpClasse . "/" . $LOGIN . " avec " . $ELEVE . " faite<br>\n";
  49     }
  50    }     
  51   }
  52  }
  53  exit 0 ;


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1