Add 4.97+security
[buildfarm-server.git] / cgi-bin / show_members.pl
index 61c621ae0bf6cf0657d8e449ac3964b073b5594c..f35c66acae2656232828a17f9a6241b35e055bc8 100755 (executable)
@@ -1,17 +1,22 @@
 #!/usr/bin/perl
 
+=comment
+
+Copyright (c) 2003-2010, Andrew Dunstan
+
+See accompanying License file for license details
+
+=cut 
+
 use strict;
 use CGI;
 use DBI;
 use Template;
 
-
-
 use vars qw($dbhost $dbname $dbuser $dbpass $dbport $template_dir $sort_by);
 
-
-require "$ENV{BFConfDir}/BuildFarmWeb.pl";
-#require "BuildFarmWeb.pl";
+use FindBin qw($RealBin);
+require "$RealBin/../BuildFarmWeb.pl";
 
 my $query = new CGI;
 my %sort_ok = ('name' => 'lower(name)' , 
@@ -26,7 +31,7 @@ my $dsn="dbi:Pg:dbname=$dbname";
 $dsn .= ";host=$dbhost" if $dbhost;
 $dsn .= ";port=$dbport" if $dbport;
 
-my $db = DBI->connect($dsn,$dbuser,$dbpass);
+my $db = DBI->connect($dsn,$dbuser,$dbpass,{pg_expand_array => 0});
 
 # there is possibly some redundancy in this query, but it makes
 # a lot of the processing simpler.
@@ -34,14 +39,15 @@ my $db = DBI->connect($dsn,$dbuser,$dbpass);
 my $statement = q{
 
   select name, operating_system, os_version, compiler, compiler_version, owner_email, 
+    sys_notes_ts::date AS sys_notes_date, sys_notes,
     architecture as arch, ARRAY(
-                               select branch || ':' || 
-                                      extract(days from now() - latest_snapshot)
-                               from build_status_latest l 
+                               select branch || E':' || 
+                                      extract(days from now() - l.snapshot)
+                               from latest_snapshot l 
                                where l.sysname = s.name
                                order by branch <> 'HEAD', branch desc 
                                ) as branches, 
-                         ARRAY(select compiler_version || '\t' ||  os_version || '\t' || effective_date
+                         ARRAY(select compiler_version || E'\t' ||  os_version || E'\t' || effective_date
                                from personality p
                                where p.name = s.name 
                                order by effective_date
@@ -60,13 +66,15 @@ while (my $row = $sth->fetchrow_hashref)
     $row->{branches} =~ s/^\{(.*)\}$/$1/;
     my $personalities = $row->{personalities};
     $personalities =~ s/^\{(.*)\}$/$1/;
-    my @personalities = split($personalities,',');
+    my @personalities = split(',',$personalities);
     $row->{personalities} = [];
     foreach my $personality (@personalities)
     {
        $personality =~ s/^"(.*)"$/$1/;
        $personality =~ s/\\(.)/$1/g;
+       
        my ($compiler_version, $os_version, $effective_date) = split(/\t/,$personality);
+       $effective_date =~ s/ .*//;
        push(@{$row->{personalities}}, {compiler_version => $compiler_version, 
                                        os_version => $os_version, 
                                        effective_date => $effective_date });
@@ -91,4 +99,3 @@ $template->process('members.tt',
                {statrows=>$statrows});
 
 exit;
-