User SSL options field
authorJamie Cameron <jcameron@webmin.com>
Fri, 4 Jun 2010 17:05:12 +0000 (10:05 -0700)
committerJamie Cameron <jcameron@webmin.com>
Fri, 4 Jun 2010 17:05:12 +0000 (10:05 -0700)
mysql/CHANGELOG
mysql/edit_user.cgi
mysql/lang/en
mysql/mysql-lib.pl
mysql/save_user.cgi

index e79d337..b6da840 100644 (file)
@@ -94,3 +94,4 @@ Added an option to the backup form to do backup in a single transaction, for Inn
 The default MySQL table type can now be set on the MySQL Server Configuration page.
 ---- Changes since 1.510 ----
 Added greater than / less than selectors to the table data search form.
+The SSL / X509 authentication type for a user can be set on the Edit User page.
index e2adca3..956598c 100755 (executable)
@@ -35,6 +35,8 @@ else {
        }
 print &ui_table_start($text{'user_header'}, undef, 2);
 %sizes = &table_field_sizes($master_db, "user");
+%fieldmap = map { $_->{'field'}, $_->{'index'} }
+               &table_structure($master_db, "user");
 
 # Username field
 print &ui_table_row($text{'user_user'},
@@ -62,6 +64,16 @@ for($i=3; $i<=&user_priv_cols()+3-1; $i++) {
 print &ui_table_row($text{'user_perms'},
        &ui_select("perms", \@sel, \@opts, 10, 1, 1));
 
+# SSL needed?
+if ($mysql_version >= 5 && $fieldmap{'ssl_type'}) {
+       print &ui_table_row($text{'user_ssl'},
+               &ui_select("ssl_type", $u->[$fieldmap{'ssl_type'}],
+                       [ [ '', $text{'user_ssl_none'} ],
+                         [ 'ANY', $text{'user_ssl_ssl'} ],
+                         [ 'X509', $text{'user_ssl_x509'} ] ],
+                       1, 0, 1));
+       }
+
 print &ui_table_end();
 print &ui_form_end([ $in{'new'} ? ( [ undef, $text{'create'} ] )
                                : ( [ undef, $text{'save'} ],
index 033f9fe..a256f30 100644 (file)
@@ -301,6 +301,10 @@ user_priv28=Create User
 user_err=Failed to save user
 user_euser=Missing or invalid username
 user_ehost=Missing or invalid allow host(s)
+user_ssl=Required certificate type
+user_ssl_none=None needed
+user_ssl_ssl=SSL
+user_ssl_x509=X509
 
 dbs_title=Database Permissions
 dbs_db=Databases
index 171ef2f..5c1f2db 100755 (executable)
@@ -218,13 +218,15 @@ local (%tp, $i);
 for($i=0; $i<@{$s->{'titles'}}; $i++) {
        $tp{lc($s->{'titles'}->[$i])} = $i;
        }
+my $i = 0;
 foreach $r (@{$s->{'data'}}) {
        push(@rv, { 'field' => $r->[$tp{'field'}],
                    'type' => $r->[$tp{'type'}],
                    'null' => $r->[$tp{'null'}],
                    'key' => $r->[$tp{'key'}],
                    'default' => $r->[$tp{'default'}],
-                   'extra' => $r->[$tp{'extra'}] });
+                   'extra' => $r->[$tp{'extra'}],
+                   'index' => $i++ });
        }
 return @rv;
 }
index 447e310..60221c5 100755 (executable)
@@ -57,6 +57,13 @@ else {
                        "update user set password = NULL ".
                        "where user = '$user' and host = '$host'");
                }
+
+       # Set SSL fields
+       if ($mysql_version >= 5 && defined($in{'ssl_type'})) {
+               &execute_sql_logged($master_db,
+                       "update user set ssl_type = '$in{'ssl_type'}' ".
+                       "where user = '$user' and host = '$host'");
+               }
        }
 &execute_sql_logged($master_db, 'flush privileges');
 if (!$in{'delete'} && !$in{'new'} &&