2007-04-12 20:24:50 +00:00
|
|
|
#!/usr/local/bin/perl
|
|
|
|
# edit_user.cgi
|
|
|
|
# Display a form for editing or creating a MySQL user
|
|
|
|
|
|
|
|
require './mysql-lib.pl';
|
|
|
|
&ReadParse();
|
|
|
|
$access{'perms'} == 1 || &error($text{'perms_ecannot'});
|
|
|
|
|
|
|
|
if ($in{'new'}) {
|
|
|
|
&ui_print_header(undef, $text{'user_title1'}, "", "create_user");
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
&ui_print_header(undef, $text{'user_title2'}, "", "edit_user");
|
|
|
|
if ($in{'user'}) {
|
|
|
|
$d = &execute_sql_safe($master_db,
|
|
|
|
"select * from user where user = ?",
|
|
|
|
$in{'user'});
|
|
|
|
$u = $d->{'data'}->[0];
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$d = &execute_sql_safe($master_db,
|
|
|
|
"select * from user order by user");
|
|
|
|
$u = $d->{'data'}->[$in{'idx'}];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2008-01-11 00:50:48 +00:00
|
|
|
# Form header
|
|
|
|
print &ui_form_start("save_user.cgi", "post");
|
2007-04-12 20:24:50 +00:00
|
|
|
if ($in{'new'}) {
|
2008-01-11 00:50:48 +00:00
|
|
|
print &ui_hidden("new", 1);
|
2007-04-12 20:24:50 +00:00
|
|
|
}
|
|
|
|
else {
|
2008-01-11 00:50:48 +00:00
|
|
|
print &ui_hidden("olduser", $u->[1]);
|
|
|
|
print &ui_hidden("oldhost", $u->[0]);
|
2007-04-12 20:24:50 +00:00
|
|
|
}
|
2008-01-11 00:50:48 +00:00
|
|
|
print &ui_table_start($text{'user_header'}, undef, 2);
|
|
|
|
%sizes = &table_field_sizes($master_db, "user");
|
2010-06-04 10:05:12 -07:00
|
|
|
%fieldmap = map { $_->{'field'}, $_->{'index'} }
|
|
|
|
&table_structure($master_db, "user");
|
2007-04-12 20:24:50 +00:00
|
|
|
|
2008-01-11 00:50:48 +00:00
|
|
|
# Username field
|
|
|
|
print &ui_table_row($text{'user_user'},
|
|
|
|
&ui_opt_textbox("mysqluser", $u->[1], $sizes{'user'},
|
|
|
|
$text{'user_all'}));
|
2007-04-12 20:24:50 +00:00
|
|
|
|
2008-01-11 00:50:48 +00:00
|
|
|
# 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));
|
2007-04-12 20:24:50 +00:00
|
|
|
|
2008-01-11 00:50:48 +00:00
|
|
|
# Allowed host / network
|
|
|
|
print &ui_table_row($text{'user_host'},
|
|
|
|
&ui_opt_textbox("host", $u->[0] eq '%' ? '' : $u->[0], 40,
|
|
|
|
$text{'user_any'}));
|
2007-04-12 20:24:50 +00:00
|
|
|
|
2008-01-11 00:50:48 +00:00
|
|
|
# User's permissions
|
2007-04-12 20:24:50 +00:00
|
|
|
for($i=3; $i<=&user_priv_cols()+3-1; $i++) {
|
2008-01-11 00:50:48 +00:00
|
|
|
push(@opts, [ $i, $text{"user_priv$i"} ]);
|
|
|
|
push(@sel, $i) if ($u->[$i] eq 'Y');
|
2007-04-12 20:24:50 +00:00
|
|
|
}
|
2008-01-11 00:50:48 +00:00
|
|
|
print &ui_table_row($text{'user_perms'},
|
|
|
|
&ui_select("perms", \@sel, \@opts, 10, 1, 1));
|
2007-04-12 20:24:50 +00:00
|
|
|
|
2011-10-03 17:57:59 -07:00
|
|
|
# Various per-user limits
|
|
|
|
foreach $f ('max_user_connections', 'max_connections',
|
|
|
|
'max_questions', 'max_updates') {
|
|
|
|
if ($mysql_version >= 5 && $fieldmap{$f}) {
|
|
|
|
print &ui_table_row($text{'user_'.$f},
|
|
|
|
&ui_opt_textbox($f,
|
|
|
|
$u->[$fieldmap{$f}] || undef,
|
|
|
|
5, $text{'user_maxunlimited'},
|
|
|
|
$text{'user_maxatmost'}));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2010-06-04 10:05:12 -07:00
|
|
|
# SSL needed?
|
|
|
|
if ($mysql_version >= 5 && $fieldmap{'ssl_type'}) {
|
|
|
|
print &ui_table_row($text{'user_ssl'},
|
2010-06-04 10:08:43 -07:00
|
|
|
&ui_select("ssl_type", uc($u->[$fieldmap{'ssl_type'}]),
|
|
|
|
[ [ '', $text{'user_ssl_'} ],
|
|
|
|
[ 'ANY', $text{'user_ssl_any'} ],
|
2010-06-04 10:05:12 -07:00
|
|
|
[ 'X509', $text{'user_ssl_x509'} ] ],
|
|
|
|
1, 0, 1));
|
2014-04-18 17:23:39 -07:00
|
|
|
print &ui_table_row($text{'user_cipher'},
|
|
|
|
&ui_textbox("ssl_cipher", $u->[$fieldmap{'ssl_cipher'}], 80));
|
2010-06-04 10:05:12 -07:00
|
|
|
}
|
|
|
|
|
2008-01-11 00:50:48 +00:00
|
|
|
print &ui_table_end();
|
|
|
|
print &ui_form_end([ $in{'new'} ? ( [ undef, $text{'create'} ] )
|
|
|
|
: ( [ undef, $text{'save'} ],
|
|
|
|
[ 'delete', $text{'delete'} ] ) ]);
|
2007-04-12 20:24:50 +00:00
|
|
|
|
|
|
|
&ui_print_footer('list_users.cgi', $text{'users_return'},
|
|
|
|
"", $text{'index_return'});
|
|
|
|
|