⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.133
Server IP:
185.119.109.197
Server:
Linux managedhosting.chostar.me 5.15.0-160-generic #170-Ubuntu SMP Wed Oct 1 10:06:56 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.1.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
webmin
/
virtual-server
/
View File Name :
mass_upgrade.cgi
#!/usr/bin/perl # Upgrade a bunch of scripts to their latest versions require './virtual-server-lib.pl'; &ReadParse(); &licence_status(); $d = &get_domain($in{'dom'}); &can_edit_domain($d) && &can_edit_scripts() || &error($text{'edit_ecannot'}); &error_setup($text{'massg_err'}); @d = split(/\0/, $in{'d'}); @d || &error($text{'massg_enone'}); # Get the scripts being upgraded, and for each work out a new version @got = &list_domain_scripts($d); foreach $id (@d) { ($sinfo) = grep { $_->{'id'} eq $id } @got; if ($sinfo) { push(@sinfos, $sinfo); $script = &get_script($sinfo->{'name'}); $sinfo->{'deleted'} && &text('massg_edeleted', $script->{'desc'}); @vers = grep { &can_script_version($script, $_) } @{$script->{'versions'}}; @better = grep { &compare_versions($_, $sinfo->{'version'}, $script) > 0 } @vers; $ver = @better ? $better[$#better] : undef; $scriptmap{$sinfo->{'id'}} = $script; $vermap{$sinfo->{'id'}} = $ver; } } if ($in{'confirm'}) { # Do it &ui_print_unbuffered_header(&domain_in($d), $text{'massg_title'}, ""); # Upgrade each script, if a new version exists foreach $sinfo (@sinfos) { $script = $scriptmap{$sinfo->{'id'}}; $ver = $vermap{$sinfo->{'id'}}; $opts = $sinfo->{'opts'}; # Check if script migrated to Pro and cannot be upgraded anymore if (script_migrated_disallowed($script->{'migrated'})) { $ver = $sinfo->{'version'}; } # Install needed packages &setup_script_packages($script, $d, $ver); &$first_print(&text('massg_doing', $script->{'desc'}, $ver)); if (&compare_versions($sinfo->{'version'}, $ver, $script) >= 0) { # Already got it &$second_print(&text('massscript_ever', $sinfo->{'version'})); next; } &$indent_print(); # Setup PHP version if (&indexof("php", @{$script->{'uses'}}) >= 0) { my ($phpver, $phperr) = &setup_php_version( $d, $script, $ver, $opts->{'path'}); if (!$phpver) { &$second_print($phperr); next; } $opts->{'phpver'} = $phpver; } local $phpver = $opts->{'phpver'}; if ($derr = &check_script_depends($script, $d, $ver, $sinfo, $phpver)) { # Failed depends &$second_print(&text('massscript_edep', $derr)); next; } # Install needed PHP modules &setup_script_requirements($d, $script, $ver, $phpver, $opts) || next; # Fetch needed files $ferr = &fetch_script_files($script, $sinfo->{'dom'}, $ver, $opts, $sinfo, \%gotfiles); &error($ferr) if ($ferr); # Work out username and password $domuser = $sinfo->{'user'} || $d->{'user'}; $dompass = $sinfo->{'pass'} || $d->{'pass'}; # Go ahead and do it ($ok, $msg, $desc, $url) = &{$script->{'install_func'}}( $d, $ver, $opts, \%gotfiles, $sinfo, $domuser, $dompass); print $msg,"
\n"; &$outdent_print(); if ($ok) { # Worked .. record it &$second_print($text{'setup_done'}); &remove_domain_script($d, $sinfo); $newsinfo = &add_domain_script( $d, $sinfo->{'name'}, $ver, $opts, $desc, $url, $sinfo->{'user'}, $sinfo->{'pass'}); $sinfo->{'id'} = $newsinfo->{'id'}; } else { &$second_print($text{'scripts_failed'}); last if ($in{'fail'}); } # Clean up any temp files from this script &cleanup_tempnames(); } &run_post_actions(); &webmin_log("upgrade", "scripts", scalar(@d)); } else { # Ask first &ui_print_header(&domain_in($d), $text{'massg_title'}, ""); print "
\n"; print &ui_form_start("mass_upgrade.cgi", "post"); print &ui_hidden("dom", $in{'dom'}),"\n"; foreach $id (@d) { print &ui_hidden("d", $id),"\n"; } print &text('massg_rusure', scalar(@d)),"
\n"; print "
\n"; foreach $sinfo (@sinfos) { $script = $scriptmap{$sinfo->{'id'}}; $ver = $vermap{$sinfo->{'id'}}; $ver = 0 if (script_migrated_disallowed($script->{'migrated'})); print "
\n"; print "
$script->{'desc'}
\n"; print "
-
\n"; if ($ver) { print "
",&text('massg_fromto', $sinfo->{'version'}, $ver),"
\n"; } else { print "
",&text('massg_stay', $sinfo->{'version'}),"
\n"; } print "
\n"; } print "
\n"; print &ui_submit($text{'massg_ok'}, "confirm"),"
\n"; print &ui_form_end(); print "
\n"; } &ui_print_footer(@sinfos == 1 ? ( "edit_script.cgi?dom=$in{'dom'}&script=$sinfos[0]->{'id'}", $text{'scripts_ereturn'} ) : ( ), "list_scripts.cgi?dom=$in{'dom'}", $text{'scripts_return'}, &domain_footer_link($d));