X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=lib%2FBackupPC%2FCGI%2FLib.pm;h=a1abccfb8727c8c6320ec41dc451d976a9b49920;hb=1ad5ae30debf935221d2a2bb36289a87cb604a18;hp=216d70cf1eef78f09390c3d4ee9be9c20c70f3bf;hpb=fda25dc88a63ccac1c80efa2e4994bf0725ca9b7;p=BackupPC.git diff --git a/lib/BackupPC/CGI/Lib.pm b/lib/BackupPC/CGI/Lib.pm index 216d70c..a1abccf 100644 --- a/lib/BackupPC/CGI/Lib.pm +++ b/lib/BackupPC/CGI/Lib.pm @@ -11,7 +11,7 @@ # Craig Barratt # # COPYRIGHT -# Copyright (C) 2003-2007 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.0, released 25 Nov 2007. +# Version 3.2.0, released 31 Jul 2010. # # See http://backuppc.sourceforge.net. # @@ -134,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 # @@ -294,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}}")); } } } @@ -353,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; } @@ -436,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}; @@ -447,6 +462,7 @@ sub Header $title + $Conf{CgiHeaders}