client/various: sort output
This commit is contained in:
@@ -8,6 +8,7 @@ use clap::{Args, Parser};
|
||||
use clap_complete::ArgValueCompleter;
|
||||
use dialoguer::{Confirm, Editor};
|
||||
use futures_util::SinkExt;
|
||||
use itertools::Itertools;
|
||||
use nix::unistd::{User, getuid};
|
||||
use tokio_stream::StreamExt;
|
||||
|
||||
@@ -203,9 +204,13 @@ pub async fn edit_database_privileges(
|
||||
}
|
||||
})
|
||||
.flatten()
|
||||
.sorted_by_key(|row| (row.db.clone(), row.user.clone()))
|
||||
.collect::<Vec<_>>(),
|
||||
Some(Ok(Response::ListAllPrivileges(privilege_rows))) => match privilege_rows {
|
||||
Ok(list) => list,
|
||||
Ok(list) => list
|
||||
.into_iter()
|
||||
.sorted_by_key(|row| (row.db.clone(), row.user.clone()))
|
||||
.collect(),
|
||||
Err(err) => {
|
||||
server_connection.send(Request::Exit).await?;
|
||||
return Err(anyhow::anyhow!(err.to_error_message())
|
||||
|
||||
@@ -61,7 +61,7 @@ pub fn print_list_databases_output_status(
|
||||
"Size"
|
||||
}
|
||||
]);
|
||||
for db in final_database_list {
|
||||
for db in final_database_list.iter().sorted_by_key(|db| &db.database) {
|
||||
table.add_row(row![
|
||||
db.database,
|
||||
db.tables.join("\n"),
|
||||
|
||||
@@ -64,25 +64,28 @@ pub fn print_list_privileges_output_status(output: &ListPrivilegesResponse, long
|
||||
.collect(),
|
||||
));
|
||||
|
||||
for (_database, rows) in final_privs_map {
|
||||
for row in &rows {
|
||||
table.add_row(row![
|
||||
row.db,
|
||||
row.user,
|
||||
c->yn(row.select_priv),
|
||||
c->yn(row.insert_priv),
|
||||
c->yn(row.update_priv),
|
||||
c->yn(row.delete_priv),
|
||||
c->yn(row.create_priv),
|
||||
c->yn(row.drop_priv),
|
||||
c->yn(row.alter_priv),
|
||||
c->yn(row.index_priv),
|
||||
c->yn(row.create_tmp_table_priv),
|
||||
c->yn(row.lock_tables_priv),
|
||||
c->yn(row.references_priv),
|
||||
]);
|
||||
}
|
||||
for row in final_privs_map
|
||||
.values()
|
||||
.flatten()
|
||||
.sorted_by_key(|row| (&row.db, &row.user))
|
||||
{
|
||||
table.add_row(row![
|
||||
row.db,
|
||||
row.user,
|
||||
c->yn(row.select_priv),
|
||||
c->yn(row.insert_priv),
|
||||
c->yn(row.update_priv),
|
||||
c->yn(row.delete_priv),
|
||||
c->yn(row.create_priv),
|
||||
c->yn(row.drop_priv),
|
||||
c->yn(row.alter_priv),
|
||||
c->yn(row.index_priv),
|
||||
c->yn(row.create_tmp_table_priv),
|
||||
c->yn(row.lock_tables_priv),
|
||||
c->yn(row.references_priv),
|
||||
]);
|
||||
}
|
||||
// }
|
||||
|
||||
table.printstd();
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
use std::collections::BTreeMap;
|
||||
|
||||
use itertools::Itertools;
|
||||
use prettytable::Table;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_json::json;
|
||||
@@ -51,7 +52,7 @@ pub fn print_list_users_output_status(output: &ListUsersResponse) {
|
||||
"Locked",
|
||||
"Databases where user has privileges"
|
||||
]);
|
||||
for user in final_user_list {
|
||||
for user in final_user_list.iter().sorted_by_key(|user| &user.user) {
|
||||
table.add_row(row![
|
||||
user.user,
|
||||
user.has_password,
|
||||
|
||||
Reference in New Issue
Block a user