home *** CD-ROM | disk | FTP | other *** search
/ pc.louisiana.edu/pub/unix/ / Louisiana_UNIX.tar / Louisiana_UNIX / bbusernames < prev    next >
Text File  |  2000-10-06  |  2KB  |  57 lines

  1. #!/usr/local/bin/perl
  2. #
  3. # bbusernames -a|-n
  4. #  will display all (-a), or registered but not enrolled in any course (-n),
  5. #  users of Blackboard Courseinfo 4.0 (4.08 tested 9/2000).
  6. # User lists are sent to stdout in a format suitable for bulk-deletion.
  7. # Written by Lori Chopin 9/2000 ljc9020@louisiana.edu
  8. #
  9. use DBI;
  10. use strict;
  11.  
  12. my $driver;
  13. my $database;
  14. my $hostname;
  15. my $dsn;
  16. my $dbh;
  17. my $sth;
  18. my $ref;
  19. my $user_id;
  20. my $showall;
  21.  
  22.  
  23. if ($ARGV[0] eq "-a"){ $showall=1; }
  24. elsif ($ARGV[0] eq "-n"){ $showall=0; }
  25. else {
  26.     printf("Usage:  bbusernames -a      [to dump all blackboard users]\n");
  27.     printf("        bbusernames -n      [to dump all blackboard users not attending courses]\n");
  28.     exit(1);
  29. }
  30.  
  31.  
  32. $driver = "mysql";
  33. $database = "courseinfo40";
  34. $hostname = "localhost";
  35. $dsn = "DBI:$driver:database=$database;host=$hostname";
  36.  
  37. $dbh = DBI ->connect($dsn,undef,undef);
  38.  
  39. $sth = $dbh -> prepare ("SELECT firstname,lastname, user_id, email, student_id FROM  users");
  40.  
  41. $sth -> execute();
  42. while($ref = $sth->fetchrow_hashref()){
  43.   unless ($showall) {
  44.       $user_id=$ref->{'user_id'};
  45.       my $enrolled_numrows=$dbh->selectrow_array("SELECT count(*) FROM  course_users WHERE user_id= '$user_id'");
  46.       next if($enrolled_numrows ne "0");    # skip printf if is in a class
  47.       next if ($user_id eq "administrator");    # or is administrator or guest
  48.       next if ($user_id eq "guest");
  49.   }
  50.   printf STDOUT ("\"%.20s\",\"%.20s\",\"%.20s\",\"%.128s\",\"%.20s\"\n", $ref->{'user_id'},$ref->{'lastname'}, $ref->{'firstname'}, $ref->{'email'}, $ref->{'student_id'});
  51. }
  52.  
  53. $sth->finish();
  54. $dbh->disconnect();
  55. 0;
  56.  
  57.