Documentation sur le logiciel SYMPA

mysql_liste-user-listes.pl

paramètre en entrée au minimum : nom.prenom

#!/usr/bin/perl -w
#
# mysql-liste-owner_liste.pl
#
# Catherine.Balleydier@inpg.fr
#
# maj : 23/09/16
#
########################################################################
# 
#   recherche pour une personne les listes 
#         dont il est proprietaire ou moderateur ou abonne
#
########################################################################
#
use DBI;
use DBD::mysql ;
use strict;
use warnings;
use Term::ReadKey;
 
my $adresse = $ARGV[0] ;
my $compte = "sympa" ;
my $BASE = "sympa" ;
my $host = "localhost" ;
my $RESUL= "/usr/local/SCRIPTS/sympa/RESUL/user_"."$adresse" ;
my $CLOSES = "/usr/local/SCRIPTS/sympa/RESUL/liste-fermee" ;
 
my $REPLIST="/home/sympa/list_data/" ;
 
#
#  liste des listes de la personne
open (FICH, ">$RESUL") ;
 
print FICH "personne;robot;liste;statut;source\n";
#
# liste fermee
# 
my $commande = "grep \"status closed\" "."$REPLIST"."*/*/config > "."$CLOSES" ;
system( $commande ) ;
 
open (CLOS, "$CLOSES") ;
my @LISTECLOS = <CLOS> ;
close (CLOS) ;
my $FERMEE = join(" ", @LISTECLOS);
 
#
# Connexion a la base sympa
#
 
#
#  demande du password de la base sympa
#
my $passe;
print "Password: ";
ReadMode 2;
    $passe = <STDIN>;
ReadMode 0;
print "\n";
chomp($passe);
 
my $data_source = "DBI:mysql:database=$BASE;host=$host";
my $db;
$db = DBI->connect( $data_source , $compte, $passe);
 
my $execution ;
 
 
#
# Requete sql : recherche pour une personne les listes ou il est proprietaire ou moderateur
#
  my $query1 = "SELECT user_admin, robot_admin, list_admin, role_admin from admin_table where user_admin like '"."$adresse"."%' ";
  $execution = $db->prepare($query1) ;
  $execution ->execute();
#
# Recuperation dans un tableau des abonnes avec la liste 
#
  while ( my @result = $execution->fetchrow() )
  {
    if ( $FERMEE !~ /$result[2]/ )
    {
      print FICH "$result[0]".";"."$result[1]".";"."$result[2]".";"."$result[3]"."\n";
    }
  }
$execution->finish();
 
#
# Requete sql : recherche pour une personne les listes ou il est  abonne
#
  $query1 = "SELECT user_subscriber, robot_subscriber, list_subscriber, included_subscriber from subscriber_table where user_subscriber like '"."$adresse"."%' ";
  $execution = $db->prepare($query1) ;
  $execution ->execute();
#
# Recuperation dans un tableau des abonnes avec la liste
#
  while ( my @result2 = $execution->fetchrow() )
  {
    if ( $FERMEE !~ /$result2[2]/ )
    {
      print FICH "$result2[0]".";"."$result2[1]".";"."$result2[2]".";membre;"."$result2[3]"."\n";
    }
  }
$execution->finish();
 
close (FICH) ;
$db->disconnect() or warn "Error disconnecting: $DBI::errstr\n";