#!/usr/local/bin/perl # edit_user.cgi # Display details of an existing user for changing require './cluster-webmin-lib.pl'; &ReadParse(); &ui_print_header(undef, $text{'user_title2'}, ""); @hosts = &list_webmin_hosts(); @mods = &all_modules(\@hosts); @themes = &all_themes(\@hosts); @wgroups = &all_groups(\@hosts); @servers = &list_servers(); if ($in{'host'} ne '') { ($host) = grep { $_->{'id'} == $in{'host'} } @hosts; ($user) = grep { $_->{'name'} eq $in{'user'} } @{$host->{'users'}}; } else { foreach $h (@hosts) { local ($u) = grep { $_->{'name'} eq $in{'user'} } @{$h->{'users'}}; if ($u) { $host = $h; $user = $u; last; } } } ($serv) = grep { $_->{'id'} == $host->{'id'} } @servers; foreach $h (@hosts) { local ($u) = grep { $_->{'name'} eq $in{'user'} } @{$h->{'users'}}; if ($u) { push(@got, grep { $_->{'id'} == $h->{'id'} } @servers); } } print "
\n"; print "\n"; print "{'id'}\">\n"; print "\n"; print "\n"; print "
",&text('user_header2', &server_name($serv)), "
\n"; print "\n"; printf "\n", $user->{'name'}; foreach $g (@{$host->{'groups'}}) { if (&indexof($user->{'name'}, @{$g->{'members'}}) >= 0) { $group = $g; last; } } print "\n"; print "\n"; @langs = &list_languages(); %langdesc = map { $_->{'lang'}, $_->{'desc'} } @langs; print "\n"; %themedesc = map { $_->{'dir'}, $_->{'desc'} } @themes; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; $mp = int((scalar(@mods)+2)/3); @umods = $group ? @{$user->{'ownmods'}} : @{$user->{'modules'}}; map { $umods{$_}++ } @umods; print "\n"; print "
$text{'user_name'}
$text{'user_group'} \n"; printf " %s (%s)\n", $text{'user_leave'}, $group ? $group->{'name'} : $text{'user_nogroup2'}; printf " %s\n", $text{'user_set'}; print "
$text{'user_pass'} \n"; print "
$text{'user_lang'} \n"; printf " %s (%s)\n", $text{'user_leave'}, $user->{'lang'} ? $langdesc{$user->{'lang'}} : $text{'user_default'}; printf " %s\n", $text{'user_set'}; print "
$text{'user_theme'} \n"; printf " %s (%s)\n", $text{'user_leave'}, $user->{'theme'} ? $themedesc{$user->{'theme'}} : !defined($user->{'theme'}) ? $text{'user_default'} : $text{'user_themedef'}; printf " %s\n", $text{'user_set'}; print "
$text{'user_notabs'}",ui_radio("notabs", int($user->{'notabs'}), [ [ 1, $text{'yes'} ], [ 2, $text{'no'} ], [ 0, $text{'default'} ] ]),"
$text{'user_ips'}\n"; print " $text{'user_leave'}\n"; if ($user->{'allow'}) { print "($text{'user_allow2'} $user->{'allow'})\n"; } elsif ($user->{'deny'}) { print "($text{'user_deny2'} $user->{'deny'})\n"; } else { print "($text{'user_allowall'})\n"; } print "\n"; print "\n"; print "
\n"; print " $text{'user_allips'}
\n"; print " $text{'user_allow'}
\n"; print " $text{'user_deny'}
$text{'user_mods'}
", "$text{'user_groupmods'}
\n"; print " ", &text('user_mleave', scalar(@umods)),"
\n"; print " $text{'user_modsel'}\n"; print " $text{'user_modadd'}\n"; print " $text{'user_moddel'}\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "$text{'user_sall'} \n"; print "$text{'user_snone'} \n"; print "$text{'user_sinvert'}
\n"; print "
\n"; print "\n"; print "\n"; %mdesc = map { $_->{'dir'}, $_->{'desc'} } @mods; foreach $h (@hosts) { local %ingroup; foreach $g (@{$h->{'groups'}}) { map { $ingroup{$_}++ } @{$g->{'members'}}; } local ($u) = grep { $_->{'name'} eq $in{'user'} } @{$h->{'users'}}; next if (!$u); local ($s) = grep { $_->{'id'} == $h->{'id'} } @servers; local $d = &server_name($s); $sel .= "\n"; } print "\n"; print "\n"; print "\n"; print "
\n"; print "\n"; print "\n"; print "
\n"; # Show hosts with the user print &ui_hr(); print &ui_subheading($text{'user_hosts'}); @icons = map { "/servers/images/$_->{'type'}.gif" } @got; @links = map { "edit_host.cgi?id=$_->{'id'}" } @got; @titles = map { &server_name($_) } @got; &icons_table(\@links, \@titles, \@icons); &ui_print_footer("", $text{'index_return'});