Revision: 6369
          http://ipcop.svn.sourceforge.net/ipcop/?rev=6369&view=rev
Author:   owes
Date:     2012-02-18 21:54:22 +0000 (Sat, 18 Feb 2012)
Log Message:
-----------
Add username to proxy log view.

Modified Paths:
--------------
    ipcop/trunk/html/cgi-bin/logproxy.cgi

Modified: ipcop/trunk/html/cgi-bin/logproxy.cgi
===================================================================
--- ipcop/trunk/html/cgi-bin/logproxy.cgi       2012-02-18 18:58:00 UTC (rev 
6368)
+++ ipcop/trunk/html/cgi-bin/logproxy.cgi       2012-02-18 21:54:22 UTC (rev 
6369)
@@ -16,7 +16,7 @@
 # along with IPCop.  If not, see <http://www.gnu.org/licenses/>.
 # 
 # (c) The SmoothWall Team
-# Copyright (c) 2001-2011 The IPCop Team
+# Copyright (c) 2001-2012 The IPCop Team
 #
 # $Id$
 #
@@ -41,6 +41,7 @@
 my %cgiparams    = ();
 my %logsettings  = ();
 my %ips          = ();
+my %users        = ();
 my %selected     = ();
 my %checked      = ();
 my @log          = ();
@@ -55,6 +56,7 @@
 $cgiparams{'DAY'}           = $now[3];
 $cgiparams{'MONTH'}         = $now[4];
 $cgiparams{'SOURCE_IP'}     = 'ALL';
+$cgiparams{'USERNAME'}      = 'ALL';
 $cgiparams{'FILTER'}        = "[.](gif|jpeg|jpg|png|css|js)\$";
 $cgiparams{'ENABLE_FILTER'} = 'off';
 $cgiparams{'ACTION'}        = '';
@@ -74,6 +76,7 @@
 
 if ($cgiparams{'ACTION'} eq $Lang::tr{'restore defaults'}) {
     $cgiparams{'SOURCE_IP'}     = 'ALL';
+    $cgiparams{'USERNAME'}      = 'ALL';
     $cgiparams{'FILTER'}        = "[.](gif|jpeg|jpg|png|css|js)\$";
     $cgiparams{'ENABLE_FILTER'} = 'on';
 }
@@ -94,6 +97,7 @@
     $cgiparams{'MONTH'}     = $temp_then[1];
     $cgiparams{'DAY'}       = $temp_then[2];
     $cgiparams{'SOURCE_IP'} = $temp_then[3];
+    $cgiparams{'USERNAME'}  = $temp_then[4];
 }
 
 if (!($cgiparams{'MONTH'} =~ /^(0|1|2|3|4|5|6|7|8|9|10|11)$/)
@@ -129,6 +133,8 @@
 my $filter    = $cgiparams{'ENABLE_FILTER'} eq 'on' ? $cgiparams{'FILTER'} : 
'';
 my $sourceip  = $cgiparams{'SOURCE_IP'};
 my $sourceall = $cgiparams{'SOURCE_IP'} eq 'ALL' ? 1 : 0;
+my $username  = $cgiparams{'USERNAME'};
+my $usersall  = $cgiparams{'USERNAME'} eq 'ALL' ? 1 : 0;
 
 my $lines    = 0;
 my $temp     = ();
@@ -186,6 +192,7 @@
         READ: while (<FILE>) {
                 my ($datetime, $do, $ip, $ray, $me, $far, $url, $so) = split;
                 $ips{$ip}++;
+                $users{$so}++;
 
                 # for debug
                 #$lastdatetime = $datetime;
@@ -193,18 +200,19 @@
                 # collect lines between date && filter
                 if (   (($datetime > $mintime) && ($datetime < $maxtime))
                     && !($url =~ /$filter/)
-                    && ((($ip eq $sourceip) || $sourceall)))
+                    && ((($ip eq $sourceip) || $sourceall))
+                    && ((($so eq $username) || $usersall)))
                 {
 
-                    # when standart viewing, just keep in memory the correct 
slices
+                    # when standard viewing, just keep in memory the correct 
slices
                     # it starts a '$start' and size is $viewport
                     # If export, then keep all lines...
                     if ($cgiparams{'ACTION'} eq $Lang::tr{'export'}) {
-                        $log[ $lines++ ] = "$datetime $ip $url";
+                        $log[ $lines++ ] = "$datetime $ip $so $url";
                     }
                     else {
                         if ($lines++ < ($start + 
$logsettings{'LOGVIEW_VIEWSIZE'})) {
-                            push(@log, "$datetime $ip $url");
+                            push(@log, "$datetime $ip $so $url");
                             if (@log > $logsettings{'LOGVIEW_VIEWSIZE'}) {
                                 shift(@log);
                             }
@@ -246,7 +254,8 @@
     print "\n";
     print "IPCop proxy log\r\n";
     print "$Lang::tr{'date'}: $date\r\n";
-    print "Source IP: $cgiparams{'SOURCE_IP'}\r\n";
+    print "$Lang::tr{'source ip'}: $cgiparams{'SOURCE_IP'}\r\n";
+    print "$Lang::tr{'username'}: $cgiparams{'USERNAME'}\r\n";
     if ($cgiparams{'ENABLE_FILTER'} eq 'on') {
         print "Ignore filter: $cgiparams{'FILTER'}\r\n";
     }
@@ -256,23 +265,24 @@
     #if ($logsettings{'LOGVIEW_REVERSE'} eq 'on') { @log = reverse @log; }
 
     foreach $_ (@log) {
-        my ($datetime, $ip, $url) = split;
+        my ($datetime, $ip, $so, $url) = split;
         my ($SECdt, $MINdt, $HOURdt, $DAYdt, $MONTHdt, $YEARdt) = 
localtime($datetime);
         $SECdt  = sprintf("%.02d", $SECdt);
         $MINdt  = sprintf("%.02d", $MINdt);
         $HOURdt = sprintf("%.02d", $HOURdt);
         if ($cgiparams{'DAY'} == 0) {    # full month
             $DAYdt = sprintf("%.02d", $DAYdt);
-            print "$DAYdt/$HOURdt:$MINdt:$SECdt $ip $url\n";
+            print "$DAYdt/$HOURdt:$MINdt:$SECdt $ip $so $url\n";
         }
         else {
-            print "$HOURdt:$MINdt:$SECdt $ip $url\n";
+            print "$HOURdt:$MINdt:$SECdt $ip $so $url\n";
         }
     }
     exit;
 }
 
 $selected{'SOURCE_IP'}{$cgiparams{'SOURCE_IP'}} = "selected='selected'";
+$selected{'USERNAME'}{$cgiparams{'USERNAME'}} = "selected='selected'";
 
 $checked{'ENABLE_FILTER'}{'off'}                       = '';
 $checked{'ENABLE_FILTER'}{'on'}                        = '';
@@ -338,31 +348,42 @@
 <hr />
 <table width='100%'>
 <tr>
-       <td width='25%' class='base'>$Lang::tr{'source ip'}:</td>
-       <td>
-       <select name='SOURCE_IP'>
-       <option value='ALL' $selected{'SOURCE_IP'}{'ALL'}>$Lang::tr{'caps 
all'}</option>
+    <td width='25%' class='base'>$Lang::tr{'source ip'}:</td>
+    <td width='25%' class='base'>
+    <select name='SOURCE_IP'>
+    <option value='ALL' $selected{'SOURCE_IP'}{'ALL'}>$Lang::tr{'caps 
all'}</option>
 END
-    ;
+;
 foreach my $ip (keys %ips) {
     print "<option value='$ip' $selected{'SOURCE_IP'}{$ip}>$ip</option>\n";
 }
 print <<END
-       </select>
-       </td>
+    </select>
+    </td>
+    <td width='25%' class='base'>$Lang::tr{'username'}:</td>
+    <td width='25%' class='base'>
+    <select name='USERNAME'>
+    <option value='ALL' $selected{'USERNAME'}{'ALL'}>$Lang::tr{'caps 
all'}</option>
+END
+;
+foreach my $so (sort keys %users) {
+    print "<option value='$so' $selected{'USERNAME'}{$so}>$so</option>\n";
+}
+print <<END
+    </select>
+    </td>
 </tr>
 <tr>
-       <td class='base'>$Lang::tr{'enable ignore filter'}:</td>
-       <td colspan='3'><input type='checkbox' name='ENABLE_FILTER' value='on' 
$checked{'ENABLE_FILTER'}{'on'} /></td>
+    <td class='base'>$Lang::tr{'enable ignore filter'}:</td>
+    <td colspan='3'><input type='checkbox' name='ENABLE_FILTER' value='on' 
$checked{'ENABLE_FILTER'}{'on'} /></td>
 </tr>
 <tr>
        <td width='25%' class='base'>$Lang::tr{'ignore filter'}:</td>
        <td><input type='text' name='FILTER' value='$cgiparams{'FILTER'}' 
size='40' /></td>
-       <td width='35%' align='center'>
+       <td colspan='2' align='center'>
                <input type='submit' name='ACTION' value='$Lang::tr{'restore 
defaults'}' />&nbsp;
                <input type='submit' name='ACTION' value='$Lang::tr{'save'}' />
        </td>
-       <td width='5%' align='right'>&nbsp;</td>
 </tr>
 </table>
 </form>
@@ -402,14 +423,15 @@
 <tr>
 <td width='10%' align='center' class='boldbase'><b>$Lang::tr{'time'}</b></td>
 <td width='15%' align='center' class='boldbase'><b>$Lang::tr{'source 
ip'}</b></td>
-<td width='75%' align='center' 
class='boldbase'><b>$Lang::tr{'website'}</b></td>
+<td width='15%' align='center' 
class='boldbase'><b>$Lang::tr{'username'}</b></td>
+<td width='60%' align='center' 
class='boldbase'><b>$Lang::tr{'website'}</b></td>
 </tr>
 END
     ;
 my $ll = 0;
 foreach $_ (@log) {
     print "<tr class='table".int(($ll % 2) + 1)."colour'>";
-    my ($datetime, $ip, $url) = split;
+    my ($datetime, $ip, $so, $url) = split;
     my ($SECdt, $MINdt, $HOURdt, $DAYdt, $MONTHdt, $YEARdt) = 
localtime($datetime);
     $SECdt  = sprintf("%.02d", $SECdt);
     $MINdt  = sprintf("%.02d", $MINdt);
@@ -427,12 +449,13 @@
         $DAYdt = '';
     }
     print <<END
-       <td align='center'>$DAYdt$HOURdt:$MINdt:$SECdt</td>
-       <td align='center'>$ip</td>
-       <td align='left'><a href='$url' title='$url' 
target='_new'>$part</a></td>
+    <td align='center'>$DAYdt$HOURdt:$MINdt:$SECdt</td>
+    <td align='center'>$ip</td>
+    <td align='center'>$so</td>
+    <td align='left'><a href='$url' title='$url' target='_blank'>$part</a></td>
 </tr>
 END
-        ;
+    ;
     $ll++;
 }
 

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Ipcop-svn mailing list
Ipcop-svn@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ipcop-svn

Reply via email to