2 #============================================================= -*-perl-*-w
4 # BackupPC_Admin: Apache/CGI interface for BackupPC.
7 # BackupPC_Admin provides a flexible web interface for BackupPC.
8 # It is a CGI script that runs under Apache.
10 # It requires that Apache pass in $ENV{SCRIPT_NAME} and
11 # $ENV{REMOTE_USER}. The latter requires .ht_access style
12 # authentication. Replace the code below if you are using some other
13 # type of authentication, and have a different way of getting the
16 # Also, this script needs to run as the BackupPC user. To accomplish
17 # this the script is typically installed as setuid to the BackupPC user,
18 # or it can run under mod_perl with httpd running as the BackupPC user.
21 # Craig Barratt <cbarratt@users.sourceforge.net>
24 # Copyright (C) 2001-2003 Craig Barratt
26 # This program is free software; you can redistribute it and/or modify
27 # it under the terms of the GNU General Public License as published by
28 # the Free Software Foundation; either version 2 of the License, or
29 # (at your option) any later version.
31 # This program is distributed in the hope that it will be useful,
32 # but WITHOUT ANY WARRANTY; without even the implied warranty of
33 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
34 # GNU General Public License for more details.
36 # You should have received a copy of the GNU General Public License
37 # along with this program; if not, write to the Free Software
38 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
40 #========================================================================
42 # Version 2.1.0_CVS, released 3 Jul 2003.
44 # See http://backuppc.sourceforge.net.
46 #========================================================================
51 use CGI::Carp qw(fatalsToBrowser);
52 use lib "/usr/local/BackupPC/lib";
55 use BackupPC::CGI::Lib qw(:all);
57 BackupPC::CGI::Lib::NewRequest;
59 my %ActionDispatch = (
60 "summary" => "Summary",
61 $Lang->{Start_Incr_Backup} => "StartStopBackup",
62 $Lang->{Start_Full_Backup} => "StartStopBackup",
63 $Lang->{Stop_Dequeue_Backup} => "StartStopBackup",
66 "LOGlist" => "LOGlist",
67 "emailSummary" => "EmailSummary",
69 "dirHistory" => "DirHistory",
70 $Lang->{Restore} => "Restore",
71 "RestoreFile" => "RestoreFile",
72 "hostInfo" => "HostInfo",
73 "generalInfo" => "GeneralInfo",
74 "restoreInfo" => "RestoreInfo",
78 # Set default actions, then call sub handler
80 $In{action} ||= "hostInfo" if ( defined($In{host}) );
81 $In{action} = "generalInfo" if ( !defined($ActionDispatch{$In{action}}) );
82 my $action = $ActionDispatch{$In{action}};
83 require "BackupPC/CGI/$action.pm"
84 if ( !defined($BackupPC::CGI::{"${action}::"}) );
85 $BackupPC::CGI::{"${action}::"}{action}();