use asa logo
[BackupPC.git] / lib / BackupPC / CGI / Lib.pm
index 3ba992b..9861acc 100644 (file)
@@ -11,7 +11,7 @@
 #   Craig Barratt  <cbarratt@users.sourceforge.net>
 #
 # COPYRIGHT
-#   Copyright (C) 2003  Craig Barratt
+#   Copyright (C) 2003-2009  Craig Barratt
 #
 #   This program is free software; you can redistribute it and/or modify
 #   it under the terms of the GNU General Public License as published by
@@ -29,7 +29,7 @@
 #
 #========================================================================
 #
-# Version 3.1.0beta0, released 3 Sep 2007.
+# Version 3.2.0, released 31 Jul 2010.
 #
 # See http://backuppc.sourceforge.net.
 #
@@ -105,6 +105,9 @@ sub NewRequest
         umask($Conf{UmaskMode});
     } elsif ( $bpc->ConfigMTime() != $ConfigMTime ) {
         $bpc->ConfigRead();
+       $TopDir = $bpc->TopDir();
+       $LogDir = $bpc->LogDir();
+       $BinDir = $bpc->BinDir();
         %Conf   = $bpc->Conf();
         $Lang   = $bpc->Lang();
         $ConfigMTime = $bpc->ConfigMTime();
@@ -131,6 +134,11 @@ sub NewRequest
     #
     $User   = $1 if ( $User =~ /uid=([^,]+)/i || $User =~ /(.*)/ );
 
+    # strip Active directory domain in front of user
+    $User   = $1 if ( $User =~ /\w+\\(\w+)/ );
+#use Data::Dump qw(dump);
+#warn "XX User: $User",dump( \%ENV );
+
     #
     # Clean up %ENV for taint checking
     #
@@ -291,7 +299,8 @@ sub ServerConnect
             Trailer();
             exit(1);
         } else {
-            ErrorExit(eval("qq{$Lang->{Unable_to_connect_to_BackupPC_server}}"));
+            ErrorExit(eval("qq{$Lang->{Unable_to_connect_to_BackupPC_server}}"),
+                      eval("qq{$Lang->{Unable_to_connect_to_BackupPC_server_error_message}}"));
         }
     }
 }
@@ -350,6 +359,10 @@ sub CheckPermission
 
     $Privileged ||= $User eq $Hosts->{$host}{user};
     $Privileged ||= defined($Hosts->{$host}{moreUsers}{$User});
+
+    # XXX check against REMOTE_NTGROUP from mod_ntlm
+    $Privileged ||= $Conf{CgiAdminUserGroup} eq $ENV{REMOTE_NTGROUP};
+
     return $Privileged;
 }
 
@@ -433,6 +446,11 @@ sub Header
                                            priv => 1},
         { link => "?action=queue",         name => $Lang->{Current_queues},
                                            priv => 1},
+       # XXX additional search extensions
+        { link => "?action=search",        name => $Lang->{Search_archive},
+                                           priv => 0},
+        { link => "?action=burn",          name => $Lang->{Burn_media},
+                                           priv => 1},
         @{$Conf{CgiNavBarLinks} || []},
     );
     my $host = $In{host};
@@ -444,10 +462,14 @@ sub Header
 <html><head>
 <title>$title</title>
 <link rel=stylesheet type="text/css" href="$Conf{CgiImageDirURL}/$Conf{CgiCSSFile}" title="CSSFile">
+<link rel=icon href="$Conf{CgiImageDirURL}/favicon.ico" type="image/x-icon">
 $Conf{CgiHeaders}
 <script src="$Conf{CgiImageDirURL}/sorttable.js"></script>
 </head><body onLoad="document.getElementById('NavMenu').style.height=document.body.scrollHeight">
+<!--
 <a href="http://backuppc.sourceforge.net"><img src="$Conf{CgiImageDirURL}/logo.gif" hspace="5" vspace="7" border="0"></a><br>
+-->
+<img src="/asa-150x50.png" hspace="5" vspace="7">
 EOF
 
     if ( defined($Hosts) && defined($host) && defined($Hosts->{$host}) ) {