#
#========================================================================
#
-# Version 2.1.0, released 20 Jun 2004.
+# Version 3.0.0beta2, released 11 Nov 2006.
#
# See http://backuppc.sourceforge.net.
#
use vars qw( @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS );
-use vars qw($Cgi %In $MyURL $User %Conf $TopDir $BinDir $bpc);
+use vars qw($Cgi %In $MyURL $User %Conf $TopDir $LogDir $BinDir $bpc);
use vars qw(%Status %Info %Jobs @BgQueue @UserQueue @CmdQueue
%QueueLen %StatusHost);
use vars qw($Hosts $HostsMTime $ConfigMTime $PrivAdmin);
NavLink
h1
h2
- $Cgi %In $MyURL $User %Conf $TopDir $BinDir $bpc
+ $Cgi %In $MyURL $User %Conf $TopDir $LogDir $BinDir $bpc
%Status %Info %Jobs @BgQueue @UserQueue @CmdQueue
%QueueLen %StatusHost
$Hosts $HostsMTime $ConfigMTime $PrivAdmin
ErrorExit($Lang->{BackupPC__Lib__new_failed__check_apache_error_log})
if ( !($bpc = BackupPC::Lib->new(undef, undef, undef, 1)) );
$TopDir = $bpc->TopDir();
+ $LogDir = $bpc->LogDir();
$BinDir = $bpc->BinDir();
%Conf = $bpc->Conf();
$Lang = $bpc->Lang();
#
$MyURL = $ENV{SCRIPT_NAME};
$User = $ENV{REMOTE_USER};
+
#
- # Handle LDAP uid=user when using mod_authz_ldap
+ # Handle LDAP uid=user when using mod_authz_ldap and otherwise untaint
#
- $User = $1 if ( $User =~ /uid=([^,]+)/i );
+ $User = $1 if ( $User =~ /uid=([^,]+)/i || $User =~ /(.*)/ );
#
# Clean up %ENV for taint checking
sub ReadUserEmailInfo
{
- if ( (stat("$TopDir/log/UserEmailInfo.pl"))[9] != $UserEmailInfoMTime ) {
- do "$TopDir/log/UserEmailInfo.pl";
- $UserEmailInfoMTime = (stat("$TopDir/log/UserEmailInfo.pl"))[9];
+ if ( (stat("$LogDir/UserEmailInfo.pl"))[9] != $UserEmailInfoMTime ) {
+ do "$LogDir/UserEmailInfo.pl";
+ $UserEmailInfoMTime = (stat("$LogDir/UserEmailInfo.pl"))[9];
}
}
|| $host ne "" && !defined($Hosts->{$host}) );
if ( $Conf{CgiAdminUserGroup} ne "" ) {
my($n,$p,$gid,$mem) = getgrnam($Conf{CgiAdminUserGroup});
- $Privileged ||= ($mem =~ /\b$User\b/);
+ $Privileged ||= ($mem =~ /\b\Q$User\E\b/);
}
if ( $Conf{CgiAdminUsers} ne "" ) {
- $Privileged ||= ($Conf{CgiAdminUsers} =~ /\b$User\b/);
+ $Privileged ||= ($Conf{CgiAdminUsers} =~ /\b\Q$User\E\b/);
$Privileged ||= $Conf{CgiAdminUsers} eq "*";
}
$PrivAdmin = $Privileged;
my($title, $content, $noBrowse, $contentSub, $contentPost) = @_;
my @adminLinks = (
{ link => "", name => $Lang->{Status}},
- { link => "?action=adminOpts", name => $Lang->{Admin_Options},
- priv => 1},
+ { link => "?action=summary", name => $Lang->{PC_Summary}},
{ link => "?action=editConfig", name => $Lang->{CfgEdit_Edit_Config},
priv => 1},
{ link => "?action=editConfig&newMenu=hosts",
name => $Lang->{CfgEdit_Edit_Hosts},
priv => 1},
- { link => "?action=summary", name => $Lang->{PC_Summary}},
+ { link => "?action=adminOpts", name => $Lang->{Admin_Options},
+ priv => 1},
{ link => "?action=view&type=LOG", name => $Lang->{LOG_file},
priv => 1},
{ link => "?action=LOGlist", name => $Lang->{Old_LOGs},
);
my $host = $In{host};
+ binmode(STDOUT, ":utf8");
print $Cgi->header(-charset => "utf-8");
print <<EOF;
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
EOF
my $hostSelectbox = "<option value=\"#\">$Lang->{Select_a_host}</option>";
my @hosts = GetUserHosts($Conf{CgiNavBarAdminAllHosts});
+ NavSectionTitle($Lang->{Hosts});
if ( defined($Hosts) && %$Hosts > 0 && @hosts ) {
- NavSectionTitle($Lang->{Hosts});
foreach my $host ( @hosts ) {
NavLink("?host=${EscURI($host)}", $host)
if ( @hosts < $Conf{CgiNavBarAdminAllHosts} );