c99ba4c6c85195de7470976805cd84ccdb635be2
[BackupPC.git] / cgi-bin / BackupPC_Admin
1 #!/bin/perl -T
2 #============================================================= -*-perl-*-w
3 #
4 # BackupPC_Admin: Apache/CGI interface for BackupPC.
5 #
6 # DESCRIPTION
7 #   BackupPC_Admin provides a flexible web interface for BackupPC.
8 #   It is a CGI script that runs under Apache.
9 #
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
14 #   user name.
15 #
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.
19 #
20 # AUTHOR
21 #   Craig Barratt  <cbarratt@users.sourceforge.net>
22 #
23 # COPYRIGHT
24 #   Copyright (C) 2001-2003  Craig Barratt
25 #
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.
30 #
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.
35 #
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
39 #
40 #========================================================================
41 #
42 # Version 2.1.0_CVS, released 3 Jul 2003.
43 #
44 # See http://backuppc.sourceforge.net.
45 #
46 #========================================================================
47
48 use strict;
49 no  utf8;
50 use CGI;
51 use CGI::Carp qw(fatalsToBrowser);
52 use lib "/usr/local/BackupPC/lib";
53
54 use BackupPC::Lib;
55 use BackupPC::CGI::Lib qw(:all);
56
57 BackupPC::CGI::Lib::NewRequest;
58
59 my %ActionDispatch = (
60     "summary"                    => "Summary",
61     $Lang->{Start_Incr_Backup}   => "StartStopBackup",
62     $Lang->{Start_Full_Backup}   => "StartStopBackup",
63     $Lang->{Stop_Dequeue_Backup} => "StartStopBackup",
64     "queue"                      => "Queue",
65     "view"                       => "View",
66     "LOGlist"                    => "LOGlist",
67     "emailSummary"               => "EmailSummary",
68     "browse"                     => "Browse",
69     "dirHistory"                 => "DirHistory",
70     $Lang->{Restore}             => "Restore",
71     "RestoreFile"                => "RestoreFile",
72     "hostInfo"                   => "HostInfo",
73     "generalInfo"                => "GeneralInfo",
74     "restoreInfo"                => "RestoreInfo",
75 );
76
77 #
78 # Set default actions, then call sub handler
79 #
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}();