X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=lib%2FBackupPC%2FCGI%2FLib.pm;h=a1abccfb8727c8c6320ec41dc451d976a9b49920;hb=1ad5ae30debf935221d2a2bb36289a87cb604a18;hp=3ba992b8e9c083ab62902fa040d373f745671c7a;hpb=fadae1eaa5482a441bc8e8aa829a063ee6a5f0c0;p=BackupPC.git diff --git a/lib/BackupPC/CGI/Lib.pm b/lib/BackupPC/CGI/Lib.pm index 3ba992b..a1abccf 100644 --- a/lib/BackupPC/CGI/Lib.pm +++ b/lib/BackupPC/CGI/Lib.pm @@ -11,7 +11,7 @@ # Craig Barratt # # 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,6 +462,7 @@ sub Header $title + $Conf{CgiHeaders}