#!/usr/local/bin/perl # edit_upgrade.cgi # Display a form for upgrading all of webmin from a tarfile require './webmin-lib.pl'; &ReadParse(); &ui_print_header(undef, $text{'upgrade_title'}, ""); if (&shared_root_directory()) { &ui_print_endpage($text{'upgrade_eroot'}); } # what kind of install was this? $mode = &get_install_type(); # was the install to a target directory? if (open(DIR, "$config_directory/install-dir")) { chop($dir = ); close(DIR); } if ($mode eq "solaris-pkg") { $skip_upgrade = $text{'upgrade_esolaris'}; } elsif ($mode eq "zip") { $skip_upgrade = $text{'upgrade_ezip'}; } # Show tabs @tabs = map { [ $_, $text{'upgrade_tab'.$_}, "edit_upgrade.cgi?mode=$_" ] } ( $skip_upgrade ? ( ) : ( "upgrade" ), "grants", "update", "sched" ); print ui_tabs_start(\@tabs, "mode", $in{'mode'} || $tabs[0]->[0], 1); if (!$skip_upgrade) { # Display upgrade form print ui_tabs_start_tab("mode", "upgrade"); print $text{"upgrade_desc$mode"},"

"; print ui_form_start("upgrade.cgi", "form-data"); print ui_hidden("mode", $mode); print ui_hidden("dir", $dir); print ui_table_start($text{'upgrade_title'}, undef, 1); print " \n"; print " $text{'upgrade_local'}\n"; print "\n"; print file_chooser_button("file", 0),"
\n"; print " $text{'upgrade_uploaded'}\n"; print "
\n"; print " $text{'upgrade_url'}\n"; print "
\n"; if ($mode eq 'caldera') { print " $text{'upgrade_cup'}\n"; } elsif ($mode eq "gentoo") { print " $text{'upgrade_emerge'}\n"; } elsif ($mode ne "sun-pkg") { print " $text{'upgrade_ftp'}\n"; } print "

\n"; if (!$mode && !$dir) { # Checkbox to delete original directory print " ", "$text{'upgrade_delete'}
\n"; } if ((!$mode || $mode eq "rpm") && &foreign_check("proc")) { # Checkbox to check signature ($ec, $emsg) = &gnupg_setup(); printf " %s
\n", $ec ? "" : "checked", $text{'upgrade_sig'}; } if (!$mode) { # Checkbox to not install missing modules printf " %s
\n", -r "$root_directory/minimal-install" ? "checked" : "", $text{'upgrade_only'}; } printf " %s
\n", $text{'upgrade_force'}; if ($main::session_id) { # Checkbox to disconnect other sessions printf " %s
\n", $text{'upgrade_disc'}; } print ui_table_end(); print "\n"; print "\n"; print ui_tabs_end_tab(); } # Display new module grants form print ui_tabs_start_tab("mode", "grants"); print "$text{'newmod_desc'}

\n"; print ui_form_start("save_newmod.cgi", "post"); print ui_table_start($text{'newmod_header'}); $newmod = &get_newmodule_users(); printf " %s
\n", $newmod ? "" : "checked", $text{'newmod_def'}; printf " %s\n", $newmod ? "checked" : "", $text{'newmod_users'}; printf "
\n", join(" ", @$newmod); print ui_table_end(); print "\n"; print ui_tabs_end_tab(); # Display module update form print ui_tabs_start_tab("mode", "update"); print "$text{'update_desc1'}

\n"; print ui_form_start("update.cgi", "post"); print ui_table_start($text{'update_header1'}); print " \n"; printf " %s
\n", $config{'upsource'} ? "" : "checked", $text{'update_webmin'}; printf " %s
\n", $config{'upsource'} ? "checked" : "", $text{'update_other'}; print " " x 4; print &ui_textarea("other", join("\n", split(/\t+/, $config{'upsource'})), 2, 50),"
\n"; printf " %s
\n", $config{'upshow'} ? "checked" : "", $text{'update_show'}; printf " %s
\n", $config{'upmissing'} ? "checked" : "", $text{'update_missing'}; printf " %s
\n", $config{'upthird'} ? "checked" : "", $text{'update_third'}; printf " %s
\n", $config{'upchecksig'} ? 'checked' : '', $text{'update_checksig'}; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$text{'update_user'}",&ui_textbox("upuser", $config{'upuser'}, 30),"
$text{'update_pass'}",&ui_password("uppass", $config{'uppass'}, 30),"
\n"; print ui_table_end(); print "\n"; print "\n"; print ui_tabs_end_tab(); # Display scheduled update form print ui_tabs_start_tab("mode", "sched"); print "$text{'update_desc2'}

\n"; print ui_form_start("update_sched.cgi", "post"); print ui_table_start($text{'update_header2'}); print " \n"; printf " %s

\n", $config{'update'} ? 'checked' : '', $text{'update_enabled'}; printf " %s
\n", $config{'upsource'} ? "" : "checked", $text{'update_webmin'}; printf " %s
\n", $config{'upsource'} ? "checked" : "", $text{'update_other'}; print " " x 4; print &ui_textarea("other", join("\n", split(/\t+/, $config{'upsource'})), 2, 50),"
\n"; if ($config{'cron_mode'} == 0) { $upmins = sprintf "%2.2d", $config{'upmins'}; print &text('update_sched2', "", "", ""),"
\n"; } else { &foreign_require("cron", "cron-lib.pl"); @jobs = &cron::list_cron_jobs(); $job = &find_cron_job(\@jobs); $job ||= { 'mins' => 0, 'hours' => $config{'uphour'}, 'days' => "*/$config{'updays'}", 'months' => '*', 'weekdays' => '*' }; print "
\n"; &cron::show_times_input($job, 1); print "

\n"; } printf " %s
\n", $config{'upshow'} ? 'checked' : '', $text{'update_show'}; printf " %s
\n", $config{'upmissing'} ? 'checked' : '', $text{'update_missing'}; printf " %s
\n", $config{'upthird'} ? "checked" : "", $text{'update_third'}; printf " %s
\n", $config{'upquiet'} ? 'checked' : '', $text{'update_quiet'}; printf " %s
\n", $config{'upchecksig'} ? 'checked' : '', $text{'update_checksig'}; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$text{'update_email'}",&ui_textbox("email", $config{'upemail'}, 30),"
$text{'update_user'}",&ui_textbox("upuser", $config{'upuser'}, 30),"
$text{'update_pass'}",&ui_password("uppass", $config{'uppass'}, 30),"
\n"; print ui_table_end(); print "\n"; print "\n"; print ui_tabs_end_tab(); print &ui_tabs_end(1); &ui_print_footer("", $text{'index_return'});