cgi: skip the harddisk check for some actions (doc, log, shutdown)
This commit is contained in:
parent
87af15a2f3
commit
086911e1b8
|
@ -295,18 +295,59 @@ sub validate_doc_language
|
|||
|
||||
$pagedata = load_hdf();
|
||||
|
||||
# BEWARE: there are two kinds of actions:
|
||||
# * some require a harddisk
|
||||
# * some do not require a harddisk
|
||||
# take care, that you put a new action into the appropriate block below
|
||||
|
||||
# first: check for ssl!
|
||||
if ( ! &check_ssl()) {
|
||||
$pagedata->setValue('Data.Error', 'NoSSL');
|
||||
$pagedata->setValue('Data.Redirect.URL', "https://" . $ENV{'HTTP_HOST'} . $ENV{'SCRIPT_NAME'});
|
||||
$pagedata->setValue('Data.Redirect.Delay', "3");
|
||||
} elsif ( ! &is_harddisk_available()) {
|
||||
$pagedata->setValue('Data.Error', 'NoHardDisk');
|
||||
} elsif ($query->param('action')) {
|
||||
my $action = $query->param('action');
|
||||
#--------------------------------------------------------------#
|
||||
# here you may define all cases that do not require a harddisk #
|
||||
# put all other cases below the harddisk check #
|
||||
#--------------------------------------------------------------#
|
||||
#################### show_log #######################
|
||||
if ($action eq 'show_log') {
|
||||
$pagedata->setValue('Data.Action', 'show_log');
|
||||
##################### doc ############################
|
||||
} elsif ($action eq 'doc') {
|
||||
if ($query->param('page')) {
|
||||
$pagedata->setValue('Data.Doc.Page', $query->param('page'));
|
||||
$pagedata->setValue('Data.Action', 'doc');
|
||||
} else {
|
||||
$pagedata->setValue('Data.Doc.Page', 'CryptoBoxUser');
|
||||
$pagedata->setValue('Data.Action', 'doc');
|
||||
}
|
||||
##################### poweroff ######################
|
||||
} elsif ($action eq 'shutdown_ask') {
|
||||
$pagedata->setValue('Data.Action', 'shutdown_form');
|
||||
##################### reboot ########################
|
||||
} elsif ($action eq 'shutdown_do') {
|
||||
if ($query->param('type') eq 'reboot') {
|
||||
&system_reboot();
|
||||
$pagedata->setValue('Data.Success', 'ReBoot');
|
||||
$pagedata->setValue('Data.Redirect.Action', 'status');
|
||||
$pagedata->setValue('Data.Redirect.Delay', "180");
|
||||
} else {
|
||||
&system_poweroff();
|
||||
$pagedata->setValue('Data.Success', 'PowerOff');
|
||||
}
|
||||
$pagedata->setValue('Data.Action', 'empty');
|
||||
##################### check for a harddisk ##########################
|
||||
# catch this error, to prevent all following actions from execution #
|
||||
#####################################################################
|
||||
} elsif ( ! &is_harddisk_available()) {
|
||||
$pagedata->setValue('Data.Error', 'NoHardDisk');
|
||||
#-------------------------------------------------------#
|
||||
# here you may define all cases that require a harddisk #
|
||||
#-------------------------------------------------------#
|
||||
################ umount_do #######################
|
||||
if ($action eq 'umount_do') {
|
||||
} elsif ($action eq 'umount_do') {
|
||||
if ( ! &check_config()) {
|
||||
$pagedata->setValue('Data.Warning', 'NotInitialized');
|
||||
$pagedata->setValue('Data.Action', 'init_form');
|
||||
|
@ -497,33 +538,6 @@ if ( ! &check_ssl()) {
|
|||
$pagedata->setValue('Data.Redirect.Delay', "30");
|
||||
}
|
||||
}
|
||||
#################### show_log #######################
|
||||
} elsif ($action eq 'show_log') {
|
||||
$pagedata->setValue('Data.Action', 'show_log');
|
||||
##################### doc ############################
|
||||
} elsif ($action eq 'doc') {
|
||||
if ($query->param('page')) {
|
||||
$pagedata->setValue('Data.Doc.Page', $query->param('page'));
|
||||
$pagedata->setValue('Data.Action', 'doc');
|
||||
} else {
|
||||
$pagedata->setValue('Data.Doc.Page', 'CryptoBoxUser');
|
||||
$pagedata->setValue('Data.Action', 'doc');
|
||||
}
|
||||
##################### poweroff ######################
|
||||
} elsif ($action eq 'shutdown_ask') {
|
||||
$pagedata->setValue('Data.Action', 'shutdown_form');
|
||||
##################### reboot ########################
|
||||
} elsif ($action eq 'shutdown_do') {
|
||||
if ($query->param('type') eq 'reboot') {
|
||||
&system_reboot();
|
||||
$pagedata->setValue('Data.Success', 'ReBoot');
|
||||
$pagedata->setValue('Data.Redirect.Action', 'status');
|
||||
$pagedata->setValue('Data.Redirect.Delay', "180");
|
||||
} else {
|
||||
&system_poweroff();
|
||||
$pagedata->setValue('Data.Success', 'PowerOff');
|
||||
}
|
||||
$pagedata->setValue('Data.Action', 'empty');
|
||||
#################### status #########################
|
||||
} elsif ($action eq 'status') {
|
||||
if ( ! &check_config()) {
|
||||
|
@ -543,7 +557,11 @@ if ( ! &check_ssl()) {
|
|||
} else {
|
||||
$pagedata->setValue('Data.Error', 'UnknownAction');
|
||||
}
|
||||
###################### default ##########################
|
||||
#################### default action ##########################
|
||||
# check for a harddisk again, as this check was skipped
|
||||
# because there was no action defined
|
||||
} elsif ( ! &is_harddisk_available()) {
|
||||
$pagedata->setValue('Data.Error', 'NoHardDisk');
|
||||
} else {
|
||||
if (&check_init_running()) {
|
||||
$pagedata->setValue('Data.Warning', 'InitNotFinished');
|
||||
|
|
Loading…
Reference in New Issue