---- 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.
+---- Changes since 1.560 ----
+Added confirmation before deleting multiple user, host, database, table and column permissions.
@d = split(/\0/, $in{'d'});
@d || &error($text{'cprivs_enone'});
-# Delete the table privs
-foreach $hdutc (@d) {
- ($host, $db, $user, $table, $column) = split(/ /, $hdutc);
- $access{'perms'} == 1 || &can_edit_db($db) ||
- &error($text{'perms_edb'});
- &execute_sql_logged($master_db,
- "delete from columns_priv where host = '$host' ".
- "and db = '$db' ".
- "and user = '$user' ".
- "and table_name = '$table' ".
- "and column_name = '$column'");
+if (!$in{'confirm'}) {
+ # Ask first
+ &ui_print_header(undef, $text{'cprivs_dtitle'}, "");
+
+ print &ui_confirmation_form("delete_cprivs.cgi",
+ &text('cprivs_drusure', scalar(@d)),
+ [ map { [ "d", $_ ] } @d ],
+ [ [ "confirm", $text{'cprivs_dok'} ] ],
+ );
+
+ &ui_print_footer('list_cprivs.cgi', $text{'cprivs_return'},
+ "", $text{'index_return'});
}
-&execute_sql_logged($master_db, 'flush privileges');
+else {
+ # Delete the column privs
+ foreach $hdutc (@d) {
+ ($host, $db, $user, $table, $column) = split(/ /, $hdutc);
+ $access{'perms'} == 1 || &can_edit_db($db) ||
+ &error($text{'perms_edb'});
+ &execute_sql_logged($master_db,
+ "delete from columns_priv where host = '$host' ".
+ "and db = '$db' ".
+ "and user = '$user' ".
+ "and table_name = '$table' ".
+ "and column_name = '$column'");
+ }
+ &execute_sql_logged($master_db, 'flush privileges');
-# Log it
-&webmin_log("delete", "cprivs", scalar(@d));
-&redirect("list_cprivs.cgi");
+ # Log it
+ &webmin_log("delete", "cprivs", scalar(@d));
+ &redirect("list_cprivs.cgi");
+ }
#!/usr/local/bin/perl
-# Delete several selected users
+# Delete several selected database permissions
require './mysql-lib.pl';
&ReadParse();
@d = split(/\0/, $in{'d'});
@d || &error($trext{'dbs_enone'});
-# Delete the users
-foreach $hdu (@d) {
- ($host, $db, $user) = split(/ /, $hdu);
- $access{'perms'} == 1 || &can_edit_db($db) ||
- &error($text{'perms_edb'});
- &execute_sql_logged($master_db,
- "delete from db where user = '$user' ".
- "and host = '$host' ".
- "and db = '$db'");
+if (!$in{'confirm'}) {
+ # Ask first
+ &ui_print_header(undef, $text{'dbs_dtitle'}, "");
+
+ print &ui_confirmation_form("delete_dbs.cgi",
+ &text('dbs_drusure', scalar(@d)),
+ [ map { [ "d", $_ ] } @d ],
+ [ [ "confirm", $text{'dbs_dok'} ] ],
+ );
+
+ &ui_print_footer('list_dbs.cgi', $text{'dbs_return'},
+ "", $text{'index_return'});
}
-&execute_sql_logged($master_db, 'flush privileges');
+else {
+ # Delete the database permissions
+ foreach $hdu (@d) {
+ ($host, $db, $user) = split(/ /, $hdu);
+ $access{'perms'} == 1 || &can_edit_db($db) ||
+ &error($text{'perms_edb'});
+ &execute_sql_logged($master_db,
+ "delete from db where user = '$user' ".
+ "and host = '$host' ".
+ "and db = '$db'");
+ }
+ &execute_sql_logged($master_db, 'flush privileges');
-# Log it
-&webmin_log("delete", "dbprivs", scalar(@d));
-&redirect("list_dbs.cgi");
+ # Log it
+ &webmin_log("delete", "dbprivs", scalar(@d));
+ &redirect("list_dbs.cgi");
+ }
@d = split(/\0/, $in{'d'});
@d || &error($trext{'hosts_enone'});
-# Delete the users
-foreach $hdu (@d) {
- ($host, $db) = split(/ /, $hdu);
- $access{'perms'} == 1 || &can_edit_db($db) ||
- &error($text{'perms_edb'});
- &execute_sql_logged($master_db,
- "delete from host where host = '$host' ".
- "and db = '$db'");
+if (!$in{'confirm'}) {
+ # Ask first
+ &ui_print_header(undef, $text{'hosts_dtitle'}, "");
+
+ print &ui_confirmation_form("delete_hosts.cgi",
+ &text('hosts_drusure', scalar(@d)),
+ [ map { [ "d", $_ ] } @d ],
+ [ [ "confirm", $text{'hosts_dok'} ] ],
+ );
+
+ &ui_print_footer('list_hosts.cgi', $text{'hosts_return'},
+ "", $text{'index_return'});
}
-&execute_sql_logged($master_db, 'flush privileges');
+else {
+ # Delete the users
+ foreach $hdu (@d) {
+ ($host, $db) = split(/ /, $hdu);
+ $access{'perms'} == 1 || &can_edit_db($db) ||
+ &error($text{'perms_edb'});
+ &execute_sql_logged($master_db,
+ "delete from host where host = '$host' ".
+ "and db = '$db'");
+ }
+ &execute_sql_logged($master_db, 'flush privileges');
-# Log it
-&webmin_log("delete", "hosts", scalar(@d));
-&redirect("list_hosts.cgi");
+ # Log it
+ &webmin_log("delete", "hosts", scalar(@d));
+ &redirect("list_hosts.cgi");
+ }
@d = split(/\0/, $in{'d'});
@d || &error($trext{'tprivs_enone'});
-# Delete the table privs
-foreach $hdut (@d) {
- ($host, $db, $user, $table) = split(/ /, $hdut);
- $access{'perms'} == 1 || &can_edit_db($db) ||
- &error($text{'perms_edb'});
- &execute_sql_logged($master_db,
- "delete from tables_priv where host = '$host' ".
- "and db = '$db' ".
- "and user = '$user' ".
- "and table_name = '$table'");
+if (!$in{'confirm'}) {
+ # Ask first
+ &ui_print_header(undef, $text{'tprivs_dtitle'}, "");
+
+ print &ui_confirmation_form("delete_tprivs.cgi",
+ &text('tprivs_drusure', scalar(@d)),
+ [ map { [ "d", $_ ] } @d ],
+ [ [ "confirm", $text{'tprivs_dok'} ] ],
+ );
+
+ &ui_print_footer('list_tprivs.cgi', $text{'tprivs_return'},
+ "", $text{'index_return'});
}
-&execute_sql_logged($master_db, 'flush privileges');
+else {
+ # Delete the table privs
+ foreach $hdut (@d) {
+ ($host, $db, $user, $table) = split(/ /, $hdut);
+ $access{'perms'} == 1 || &can_edit_db($db) ||
+ &error($text{'perms_edb'});
+ &execute_sql_logged($master_db,
+ "delete from tables_priv where host = '$host' ".
+ "and db = '$db' ".
+ "and user = '$user' ".
+ "and table_name = '$table'");
+ }
+ &execute_sql_logged($master_db, 'flush privileges');
-# Log it
-&webmin_log("delete", "tprivs", scalar(@d));
-&redirect("list_tprivs.cgi");
+ # Log it
+ &webmin_log("delete", "tprivs", scalar(@d));
+ &redirect("list_tprivs.cgi");
+ }
@d = split(/\0/, $in{'d'});
@d || &error($trext{'users_enone'});
-# Delete the users
-foreach $hu (@d) {
- ($host, $user) = split(/ /, $hu);
- &execute_sql_logged($master_db,
- "delete from user where user = '$user' ".
- "and host = '$host'");
+if (!$in{'confirm'}) {
+ # Ask first
+ &ui_print_header(undef, $text{'users_dtitle'}, "");
+
+ print &ui_confirmation_form("delete_users.cgi",
+ &text('users_drusure', scalar(@d)),
+ [ map { [ "d", $_ ] } @d ],
+ [ [ "confirm", $text{'users_dok'} ] ],
+ );
+
+ &ui_print_footer('list_users.cgi', $text{'users_return'},
+ "", $text{'index_return'});
}
-&execute_sql_logged($master_db, 'flush privileges');
+else {
+ # Delete the users
+ foreach $hu (@d) {
+ ($host, $user) = split(/ /, $hu);
+ &execute_sql_logged($master_db,
+ "delete from user where user = '$user' ".
+ "and host = '$host'");
+ }
+ &execute_sql_logged($master_db, 'flush privileges');
-# Log it
-&webmin_log("delete", "users", scalar(@d));
-&redirect("list_users.cgi");
+ # Log it
+ &webmin_log("delete", "users", scalar(@d));
+ &redirect("list_users.cgi");
+ }
users_derr=Failed to delete users
users_enone=No users selected
users_ssl=Certificate
+users_dtitle=Delete User Permissions
+users_drusure=Are you sure you want to delete the $1 selected MySQL user permissions?
+users_dok=Delete Users
user_title1=Create User
user_title2=Edit User
dbs_return=database permissions
dbs_derr=Failed to delete database permissions
dbs_enone=No databases selected
+dbs_dtitle=Delete Database Permissions
+dbs_drusure=Are you sure you want to delete the $1 selected MySQL database permissions?
+dbs_dok=Delete Permissions
db_title1=Create Database Permissions
db_title2=Edit Database Permissions
hosts_empty=No host permissions defined
hosts_derr=Failed to delete host permissions
hosts_enone=No hosts selected
+hosts_dtitle=Delete Host Permissions
+hosts_drusure=Are you sure you want to delete the $1 selected MySQL host permissions?
+hosts_dok=Delete Permissions
host_title1=Create Host Permissions
host_title2=Edit Host Permissions
tprivs_none=None
tprivs_derr=Failed to delete table permissions
tprivs_enone=No tables selected
+tprivs_dtitle=Delete Table Permissions
+tprivs_drusure=Are you sure you want to delete the $1 selected MySQL table permissions?
+tprivs_dok=Delete Permissions
tpriv_title1=Create Table Permissions
tpriv_title2=Edit Table Permissions
cprivs_none=None
cprivs_derr=Failed to delete field permissions
cprivs_enone=No fields selected
+cprivs_dtitle=Delete Column Permissions
+cprivs_drusure=Are you sure you want to delete the $1 selected MySQL column permissions?
+cprivs_dok=Delete Permissions
cpriv_title1=Create Field Permissions
cpriv_title2=Edit Field Permissions