[ Avaa Bypassed ]




Upload:

Command:

www-data@18.188.66.142: ~ $
#!/usr/bin/perl
# edit_mod.cgi
# Display details of a module or theme

require './cluster-webmin-lib.pl';
&ReadParse();
$type = $in{'tedit'} || !$in{'mod'} ? 'theme' : 'mod';
$name = $in{$type};
&ui_print_header(undef, $text{"edit_title_$type"}, "");

# Find all hosts with the module or theme
@hosts = &list_webmin_hosts();
@servers = &list_servers();
foreach $h (@hosts) {
	local ($s) = grep { $_->{'id'} == $h->{'id'} } @servers;
	foreach $m ($type eq 'theme' ? @{$h->{'themes'}}
				     : @{$h->{'modules'}}) {
		if ($m->{'dir'} eq $name) {
			$s->{'module'} = $m;
			push(@got, $s);
			push(@goth, $h);
			$mod = $m if (!$mod);
			if (!$checkon && ($s->{'id'} == $in{'host'} ||
				  !$s->{'id'} && !defined($in{'host'}))) {
				$checkon = $s;
				$checkonh = $h;
				}
			}
		}
	}

# Get the details from this host, or the first in the list
if (!$checkon) {
	$checkonh = $goth[0];
	$checkon = $got[0];
	}
#&remote_foreign_require($checkon->{'host'}, "software", "software-lib.pl");
#@pinfo = &remote_foreign_call($checkon->{'host'}, "software", "package_info",
#			      $in{'package'});

# Show module/theme details
print "<table border width=100%>\n";
print "<tr $tb> <td><b>",&text("edit_header_$type", &server_name($checkon)),
      "</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'edit_desc'}</b></td>\n";
print "<td>",$mod->{'desc'},"</td>\n";

print "<td><b>$text{'edit_ver'}</b></td>\n";
print "<td>",$mod->{'version'} ? $mod->{'version'}
			       : $text{'edit_nover'},"</td> </tr>\n";

if ($type eq 'mod') {
	# Show details of module
	foreach $m (@{$checkonh->{'modules'}}) {
		$modmap{$m->{'dir'}} = $m;
		foreach $d (split(/\s+/, $m->{'depends'})) {
			push(@{$ondeps{$d}}, $m);
			}
		}

	&read_file("$config_directory/webmin.catnames", \%catnames);
	print "<tr> <td><b>$text{'edit_cat'}</b></td>\n";
	$c = $mod->{'category'};
	print "<td>",$catname{$c} ? $catname{$c} :
		     $text{"category_$c"} ? $text{"category_$c"} :
					    $text{"category_"},"</td>\n";

	print "<td><b>$text{'edit_dir'}</b></td>\n";
	if ($checkon->{'id'}) {
		print "<td><tt><a href='/servers/link.cgi/$checkon->{'id'}/",
		      "$mod->{'dir'}/'>$mod->{'dir'}</a></tt></td> </tr>\n";
		}
	else {
		print "<td><tt><a href='/$mod->{'dir'}/'>$mod->{'dir'}</a>",
		      "</tt></td> </tr>\n";
		}

	# Show operating systems
	print "<tr> <td valign=top><b>$text{'edit_os'}</b></td>\n";
	print "<td colspan=3>\n";
	$oss = $mod->{'os_support'};
	if (!$oss) {
		print $text{'edit_osall'};
		}
	else {
		open(OSLIST, "<$root_directory/os_list.txt");
		while(<OSLIST>) {
			chop;
			if (/^([^\t]+)\t+([^\t]+)\t+(\S+)\t+(\S+)\t*(.*)$/) {
				$osname{$3} ||= $1;
				}
			}
		close(OSLIST);
		$osname{"*-linux"} = "Linux";
		while(1) {
			local ($os, $ver, $codes);
			if ($oss =~ /^([^\/\s]+)\/([^\{\s]+)\{([^\}]*)\}\s*(.*)$/) {
				$os = $1; $ver = $2; $codes = $3; $oss = $4;
				}
			elsif ($oss =~ /^([^\/\s]+)\/([^\/\s]+)\s*(.*)$/) {
				$os = $1; $ver = $2; $oss = $3;
				}
			elsif ($oss =~ /^([^\{\s]+)\{([^\}]*)\}\s*(.*)$/) {
				$os = $1; $codes = $2; $oss = $3;
				}
			elsif ($oss =~ /^\{([^\}]*)\}\s*(.*)$/) {
				$codes = $1; $oss = $2;
				}
			elsif ($oss =~ /^(\S+)\s*(.*)$/) {
				$os = $1; $oss = $2;
				}
			else { last; }
			print "&nbsp;,&nbsp;\n" if ($doneone++);
			$osn = $osname{$os} ? $osname{$os} : $os;
			$osn =~ s/\s/&nbsp;/g;
			if ($ver) {
				print "$osn&nbsp;$ver";
				}
			elsif ($os) {
				print "$osn";
				}
			if ($codes) {
				$codes =~ s/\s/&nbsp;/g;
				if ($os) {
					print " (",&text('edit_codes',
							"<tt>$codes</tt>"),")";
					}
				else {
					print &text('edit_codes',
						    "<tt>$codes</tt>");
					}
				}
			}
		}
	print "</td> </tr>\n";

	# Show which modules this module depends upon
	local @deps = grep { !/^[0-9\.]+$/ } split(/\s+/, $mod->{'depends'});
	local @pdeps = split(/\s+/, $mod->{'perldepends'});
	print "<tr> <td valign=top><b>$text{'edit_deps'}</b></td>\n";
	print "<td valign=top>\n";
	if (@deps || @pdeps) {
		foreach $d (@deps) {
			local $mm = $modmap{$d};
			print $mm->{'desc'}," (<tt>$mm->{'dir'}</tt>)<br>\n";
			}
		foreach $d (@pdeps) {
			print &text('edit_pdep', "<tt>$d</tt>"),"<br>\n";
			}
		}
	else {
		print "$text{'edit_nodeps'}\n";
		}
	print "</td>\n";

	# Show which other modules depend on this one
	print "<td valign=top><b>$text{'edit_ondeps'}</b></td>\n";
	print "<td valign=top>\n";
	if ($ondeps{$mod->{'dir'}}) {
		foreach $d (@{$ondeps{$mod->{'dir'}}}) {
			print $d->{'desc'}," (<tt>$d->{'dir'}</tt>)<br>\n";
			}
		}
	else {
		print "$text{'edit_nodeps'}\n";
		}
	print "</td> </tr>\n";
	}
else {
	# Show details of theme
	}

print "</table></td></tr></table><p>\n";

print "<table width=100%><tr>\n";

# Show button to delete module
print "<td><form action=delete_mod.cgi>\n";
print "<input type=hidden name=type value=\"$type\">\n";
print "<input type=hidden name=mod value=\"$name\">\n";
print "<input type=submit value='",$text{"edit_uninst_$type"},"'>\n";
print "<select name=server>\n";
print "<option value=-1>$text{'edit_all'}</option>\n";
foreach $s (@got) {
	print "<option value='$s->{'id'}'>",&server_name($s),"</option>\n";
	}
print "</select></form></td>\n";

if ($type eq 'mod') {
	# Show button to edit config
	print "<td><form action=edit_config.cgi>\n";
	print "<input type=hidden name=type value=\"$type\">\n";
	print "<input type=hidden name=mod value=\"$name\">\n";
	print "<input type=submit value='$text{'edit_config'}'>\n";
	&create_on_input(undef, 1, 0, 0);
	print "</form></td>\n";
	}

if ($type eq 'mod') {
	# Show user/group ACL selector
	print "<td align=right><form action=edit_acl.cgi>\n";
	print "<input type=hidden name=mod value=\"$name\">\n";
	print "<input type=hidden name=host value=\"$checkonh->{'id'}\">\n";
	print "<input type=submit value='$text{'edit_acl'}'>\n";
	print "<select name=whohost>\n";
	for($i=0; $i<@goth; $i++) {
		$h = $goth[$i];
		local %ingroup;
		foreach $g (@{$h->{'groups'}}) {
			map { $ingroup{$_}++ } @{$g->{'members'}};
			}
		local $d = &server_name($got[$i]);
		foreach $u (@{$h->{'users'}}) {
			local @m = $ingroup{$u->{'name'}} ? @{$u->{'ownmods'}}
							  : @{$u->{'modules'}};
			print "<option value='$h->{'id'},$u->{'name'}'>",
			      &text('edit_uacl', $u->{'name'}, $d),"</option>\n"
				if (&indexof($name, @m) >= 0);
			}
		foreach $g (@{$h->{'groups'}}) {
			local @m = $ingroup{$g->{'name'}} ? @{$g->{'ownmods'}}
							  : @{$g->{'modules'}};
			print "<option value='$h->{'id'},$g->{'name'}'>",
			      &text('edit_gacl', $g->{'name'}, $d),"</option>\n"
				if (&indexof($name, @m) >= 0);
			}
		}
	print "</select></form></td>\n";
	}

print "</tr></table>\n";

# Show hosts with the module or theme
print &ui_hr();
print &ui_subheading($text{'edit_hosts'});
@icons = map { "/servers/images/$_->{'type'}.svg" } @got;
@links = map { "edit_host.cgi?id=$_->{'id'}" } @got;
@titles = map { &server_name($_).
	        ($_->{'module'}->{'version'} ? " ($text{'host_version2'} $_->{'module'}->{'version'})" : "") } @got;
&icons_table(\@links, \@titles, \@icons);
print "<br>";

&remote_finished();
&ui_print_footer("", $text{'index_return'});



Filemanager

Name Type Size Permission Actions
help Folder 0755
images Folder 0755
lang Folder 0755
CHANGELOG File 1.05 KB 0644
add.cgi File 2.48 KB 0755
cluster-webmin-lib.pl File 7.29 KB 0755
config File 25 B 0644
config.info File 108 B 0644
config.info.ca File 137 B 0644
config.info.cs File 79 B 0644
config.info.de File 125 B 0644
config.info.es File 75 B 0644
config.info.fr File 134 B 0644
config.info.hr File 0 B 0644
config.info.hu File 0 B 0644
config.info.ms File 131 B 0644
config.info.nl File 131 B 0644
config.info.no File 127 B 0644
config.info.pl File 122 B 0644
create_group.cgi File 3.11 KB 0755
create_user.cgi File 3.95 KB 0755
delete_group.cgi File 3.22 KB 0755
delete_host.cgi File 248 B 0755
delete_mod.cgi File 4.17 KB 0755
delete_user.cgi File 2.15 KB 0755
edit_acl.cgi File 3.94 KB 0755
edit_config.cgi File 2.13 KB 0755
edit_group.cgi File 6.35 KB 0755
edit_host.cgi File 4.46 KB 0755
edit_mod.cgi File 7 KB 0755
edit_user.cgi File 8.96 KB 0755
group_form.cgi File 2.98 KB 0755
index.cgi File 9.46 KB 0755
install.cgi File 7.68 KB 0755
module.info File 227 B 0644
module.info.af File 0 B 0644
module.info.af.auto File 185 B 0644
module.info.ar File 0 B 0644
module.info.ar.auto File 279 B 0644
module.info.be File 0 B 0644
module.info.be.auto File 304 B 0644
module.info.bg File 0 B 0644
module.info.bg.auto File 306 B 0644
module.info.ca File 178 B 0644
module.info.ca.auto File 23 B 0644
module.info.cs File 33 B 0644
module.info.cs.auto File 158 B 0644
module.info.da File 0 B 0644
module.info.da.auto File 192 B 0644
module.info.de File 160 B 0644
module.info.de.auto File 23 B 0644
module.info.el File 0 B 0644
module.info.el.auto File 345 B 0644
module.info.es File 36 B 0644
module.info.es.auto File 162 B 0644
module.info.eu File 0 B 0644
module.info.eu.auto File 191 B 0644
module.info.fa File 0 B 0644
module.info.fa.auto File 256 B 0644
module.info.fi File 0 B 0644
module.info.fi.auto File 190 B 0644
module.info.fr File 35 B 0644
module.info.fr.auto File 183 B 0644
module.info.he File 0 B 0644
module.info.he.auto File 240 B 0644
module.info.hr File 0 B 0644
module.info.hr.auto File 193 B 0644
module.info.hu File 33 B 0644
module.info.hu.auto File 185 B 0644
module.info.it File 0 B 0644
module.info.it.auto File 183 B 0644
module.info.ja File 0 B 0644
module.info.ja.auto File 256 B 0644
module.info.ko File 0 B 0644
module.info.ko.auto File 195 B 0644
module.info.lt File 0 B 0644
module.info.lt.auto File 206 B 0644
module.info.lv File 0 B 0644
module.info.lv.auto File 197 B 0644
module.info.ms File 151 B 0644
module.info.ms.auto File 23 B 0644
module.info.mt File 0 B 0644
module.info.mt.auto File 188 B 0644
module.info.nl File 33 B 0644
module.info.nl.auto File 155 B 0644
module.info.no File 32 B 0644
module.info.no.auto File 153 B 0644
module.info.pl File 168 B 0644
module.info.pl.auto File 23 B 0644
module.info.pt File 0 B 0644
module.info.pt.auto File 196 B 0644
module.info.pt_BR File 0 B 0644
module.info.pt_BR.auto File 205 B 0644
module.info.ro File 0 B 0644
module.info.ro.auto File 189 B 0644
module.info.ru File 0 B 0644
module.info.ru.auto File 320 B 0644
module.info.sk File 0 B 0644
module.info.sk.auto File 199 B 0644
module.info.sl File 0 B 0644
module.info.sl.auto File 186 B 0644
module.info.sv File 0 B 0644
module.info.sv.auto File 186 B 0644
module.info.th File 0 B 0644
module.info.th.auto File 403 B 0644
module.info.tr File 0 B 0644
module.info.tr.auto File 204 B 0644
module.info.uk File 0 B 0644
module.info.uk.auto File 328 B 0644
module.info.ur File 0 B 0644
module.info.ur.auto File 287 B 0644
module.info.vi File 0 B 0644
module.info.vi.auto File 215 B 0644
module.info.zh File 0 B 0644
module.info.zh.auto File 160 B 0644
module.info.zh_TW File 0 B 0644
module.info.zh_TW.auto File 169 B 0644
prefs.info File 28 B 0644
refresh.cgi File 4.08 KB 0755
save_acl.cgi File 3.33 KB 0755
save_config.cgi File 1.33 KB 0755
save_group.cgi File 4.54 KB 0755
save_user.cgi File 5.24 KB 0755
sync.cgi File 4 KB 0755
sync_form.cgi File 1.8 KB 0755
update.cgi File 4.1 KB 0755
upgrade.cgi File 15.26 KB 0755
user_form.cgi File 4.5 KB 0755