diff --git a/mysql/edit_user.cgi b/mysql/edit_user.cgi index 71a5c74f0..e2adca34e 100755 --- a/mysql/edit_user.cgi +++ b/mysql/edit_user.cgi @@ -24,59 +24,48 @@ else { } } -print "
\n"; +# Form header +print &ui_form_start("save_user.cgi", "post"); if ($in{'new'}) { - print "\n"; + print &ui_hidden("new", 1); } else { - print "\n"; - print "\n"; + print &ui_hidden("olduser", $u->[1]); + print &ui_hidden("oldhost", $u->[0]); } -print "\n"; -print "\n"; -print "
$text{'user_header'}
\n"; +print &ui_table_start($text{'user_header'}, undef, 2); +%sizes = &table_field_sizes($master_db, "user"); -print "\n"; +# Username field +print &ui_table_row($text{'user_user'}, + &ui_opt_textbox("mysqluser", $u->[1], $sizes{'user'}, + $text{'user_all'})); -print "\n"; +# Password field +print &ui_table_row($text{'user_pass'}, + &ui_radio("mysqlpass_mode", $in{'new'} ? 0 : $u->[2] ? 1 : 2, + [ [ 2, $text{'user_none'} ], + $in{'new'} ? ( ) : ( [ 1, $text{'user_leave'} ] ), + [ 0, $text{'user_set'} ] ])." ". + &ui_password("mysqlpass", undef, 20)); -print "\n", - $u->[0] eq '%' ? '' : $u->[0]; +# Allowed host / network +print &ui_table_row($text{'user_host'}, + &ui_opt_textbox("host", $u->[0] eq '%' ? '' : $u->[0], 40, + $text{'user_any'})); -print "\n"; -print "\n"; +print &ui_table_row($text{'user_perms'}, + &ui_select("perms", \@sel, \@opts, 10, 1, 1)); -print "
$text{'user_user'} \n"; -printf " %s\n", - $u->[1] ? '' : 'checked', $text{'user_all'}; -printf "\n", - $u->[1] ? 'checked' : ''; -print "
$text{'user_pass'} \n"; -printf " %s\n", - !$in{'new'} && !$u->[2] ? 'checked' : '', $text{'user_none'}; -if (!$in{'new'}) { - printf " %s\n", - $u->[2] ? 'checked' : '', $text{'user_leave'}; - } -printf " %s\n", - $in{'new'} ? 'checked' : '', $text{'user_set'}; -print "
$text{'user_host'} \n"; -printf " %s\n", - $u->[0] eq '%' || $u->[0] eq '' ? 'checked' : '', $text{'user_any'}; -printf "\n", - $u->[0] eq '%' || $u->[0] eq '' ? '' : 'checked'; -printf "
$text{'user_perms'}
\n"; -print "\n"; -if (!$in{'new'}) { - print "\n"; - } -print "
\n"; +print &ui_table_end(); +print &ui_form_end([ $in{'new'} ? ( [ undef, $text{'create'} ] ) + : ( [ undef, $text{'save'} ], + [ 'delete', $text{'delete'} ] ) ]); &ui_print_footer('list_users.cgi', $text{'users_return'}, "", $text{'index_return'}); diff --git a/mysql/index.cgi b/mysql/index.cgi index baa7d8d72..369baae6e 100755 --- a/mysql/index.cgi +++ b/mysql/index.cgi @@ -80,19 +80,19 @@ elsif ($r == -1) { # Running, but webmin doesn't know the root (or user's) password! &main_header(); print "$text{'index_nopass'}

\n"; - print "

\n"; - print "
\n"; - print "\n"; - print "
$text{'index_ltitle'}
\n"; - print "\n"; - printf "\n", - $access{'user'} || $config{'login'}; - print "\n"; - print "\n"; - print "
$text{'index_login'}
$text{'index_pass'}
\n"; - print "\n"; - print "\n"; - print "
\n"; + + print &ui_form_start("login.cgi", "post"); + print &ui_table_start($text{'index_ltitle'}, undef, 2); + + print &ui_table_row($text{'index_login'}, + &ui_textbox("login", $access{'user'} || $config{'login'}, 40)); + + print &ui_table_row($text{'index_pass'}, + &ui_password("pass", undef, 40)); + + print &ui_table_end(); + print &ui_form_end([ [ undef, $text{'save'} ] ]); + print &text('index_emsg', "$rout"),"

\n"; } else { diff --git a/mysql/mysql-lib.pl b/mysql/mysql-lib.pl index 9f951da04..85f22abb8 100644 --- a/mysql/mysql-lib.pl +++ b/mysql/mysql-lib.pl @@ -203,6 +203,19 @@ foreach $r (@{$s->{'data'}}) { return @rv; } +# table_field_sizes(db, table) +# Returns a hash mapping field names to sizes +sub table_field_sizes +{ +local %rv; +foreach my $s (&table_structure(@_)) { + if ($s->{'type'} =~ /^\S+\((\d+)(,\d+)?\)/) { + $rv{lc($s->{'field'})} = $1; + } + } +return %rv; +} + # execute_sql(database, command, [param, ...]) # Executes some SQL and returns the results, after checking for the user's # readonly status.