X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=lib%2FBackupPC%2FCGI%2FLib.pm;h=9861accc71f4c85fe8c5168147c9da6749f8bdd8;hb=9fe65ff02dc6a9ea47b833629c02a4a43c98e5b6;hp=8370b4622a120c1ba0322ce6a39d1f244dbf4956;hpb=3f3d4f4adbd990e15969d9cbc5e99e89e613e502;p=BackupPC.git diff --git a/lib/BackupPC/CGI/Lib.pm b/lib/BackupPC/CGI/Lib.pm index 8370b46..9861acc 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.0.0, released 28 Jan 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 $title + $Conf{CgiHeaders} + + EOF if ( defined($Hosts) && defined($host) && defined($Hosts->{$host}) ) {