⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.93
Server IP:
65.108.141.171
Server:
Linux server.heloix.com 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
7.4.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
webmin
/
virtual-server
/
Edit File: mass_upgrade.cgi
#!/usr/bin/perl # Upgrade a bunch of scripts to their latest versions require './virtual-server-lib.pl'; &ReadParse(); $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(); local $phpver = $sinfo->{'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($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,"<br>\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 "<center>\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)),"<p>\n"; print "<table>\n"; foreach $sinfo (@sinfos) { $script = $scriptmap{$sinfo->{'id'}}; $ver = $vermap{$sinfo->{'id'}}; $ver = 0 if (script_migrated_disallowed($script->{'migrated'})); print "<tr>\n"; print "<td>$script->{'desc'}</td>\n"; print "<td> - </td>\n"; if ($ver) { print "<td>",&text('massg_fromto', $sinfo->{'version'}, $ver),"</td>\n"; } else { print "<td>",&text('massg_stay', $sinfo->{'version'}),"</td>\n"; } print "</tr>\n"; } print "</table>\n"; print &ui_submit($text{'massg_ok'}, "confirm"),"<br>\n"; print &ui_form_end(); print "</center>\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));
Simpan