Remove randomly generated example, run clippy. Fixes #6
This commit is contained in:
parent
1a5dc96f0d
commit
4a94265eae
|
@ -892,7 +892,6 @@ dependencies = [
|
||||||
"log",
|
"log",
|
||||||
"nix",
|
"nix",
|
||||||
"prettytable",
|
"prettytable",
|
||||||
"rand",
|
|
||||||
"ratatui",
|
"ratatui",
|
||||||
"rpassword",
|
"rpassword",
|
||||||
"serde",
|
"serde",
|
||||||
|
|
|
@ -13,7 +13,6 @@ itertools = "0.12.1"
|
||||||
log = "0.4.21"
|
log = "0.4.21"
|
||||||
nix = { version = "0.28.0", features = ["user"] }
|
nix = { version = "0.28.0", features = ["user"] }
|
||||||
prettytable = "0.10.0"
|
prettytable = "0.10.0"
|
||||||
rand = "0.8.5"
|
|
||||||
ratatui = { version = "0.26.2", optional = true }
|
ratatui = { version = "0.26.2", optional = true }
|
||||||
rpassword = "7.3.1"
|
rpassword = "7.3.1"
|
||||||
serde = "1.0.198"
|
serde = "1.0.198"
|
||||||
|
@ -33,4 +32,4 @@ path = "src/main.rs"
|
||||||
[profile.release]
|
[profile.release]
|
||||||
strip = true
|
strip = true
|
||||||
lto = true
|
lto = true
|
||||||
codegen-units = 1
|
codegen-units = 1
|
||||||
|
|
|
@ -3,7 +3,6 @@ use clap::Parser;
|
||||||
use indoc::indoc;
|
use indoc::indoc;
|
||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
use prettytable::{Cell, Row, Table};
|
use prettytable::{Cell, Row, Table};
|
||||||
use rand::prelude::*;
|
|
||||||
use sqlx::{Connection, MySqlConnection};
|
use sqlx::{Connection, MySqlConnection};
|
||||||
|
|
||||||
use crate::core::{
|
use crate::core::{
|
||||||
|
@ -357,29 +356,29 @@ fn parse_permission_data_from_editor(content: String) -> anyhow::Result<Vec<Data
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(DatabasePrivileges {
|
Ok(DatabasePrivileges {
|
||||||
db: (*line_parts.get(0).unwrap()).to_owned(),
|
db: (*line_parts.first().unwrap()).to_owned(),
|
||||||
user: (*line_parts.get(1).unwrap()).to_owned(),
|
user: (*line_parts.get(1).unwrap()).to_owned(),
|
||||||
select_priv: parse_permission(*line_parts.get(2).unwrap())
|
select_priv: parse_permission(line_parts.get(2).unwrap())
|
||||||
.context("Could not parse SELECT privilege")?,
|
.context("Could not parse SELECT privilege")?,
|
||||||
insert_priv: parse_permission(*line_parts.get(3).unwrap())
|
insert_priv: parse_permission(line_parts.get(3).unwrap())
|
||||||
.context("Could not parse INSERT privilege")?,
|
.context("Could not parse INSERT privilege")?,
|
||||||
update_priv: parse_permission(*line_parts.get(4).unwrap())
|
update_priv: parse_permission(line_parts.get(4).unwrap())
|
||||||
.context("Could not parse UPDATE privilege")?,
|
.context("Could not parse UPDATE privilege")?,
|
||||||
delete_priv: parse_permission(*line_parts.get(5).unwrap())
|
delete_priv: parse_permission(line_parts.get(5).unwrap())
|
||||||
.context("Could not parse DELETE privilege")?,
|
.context("Could not parse DELETE privilege")?,
|
||||||
create_priv: parse_permission(*line_parts.get(6).unwrap())
|
create_priv: parse_permission(line_parts.get(6).unwrap())
|
||||||
.context("Could not parse CREATE privilege")?,
|
.context("Could not parse CREATE privilege")?,
|
||||||
drop_priv: parse_permission(*line_parts.get(7).unwrap())
|
drop_priv: parse_permission(line_parts.get(7).unwrap())
|
||||||
.context("Could not parse DROP privilege")?,
|
.context("Could not parse DROP privilege")?,
|
||||||
alter_priv: parse_permission(*line_parts.get(8).unwrap())
|
alter_priv: parse_permission(line_parts.get(8).unwrap())
|
||||||
.context("Could not parse ALTER privilege")?,
|
.context("Could not parse ALTER privilege")?,
|
||||||
index_priv: parse_permission(*line_parts.get(9).unwrap())
|
index_priv: parse_permission(line_parts.get(9).unwrap())
|
||||||
.context("Could not parse INDEX privilege")?,
|
.context("Could not parse INDEX privilege")?,
|
||||||
create_tmp_table_priv: parse_permission(*line_parts.get(10).unwrap())
|
create_tmp_table_priv: parse_permission(line_parts.get(10).unwrap())
|
||||||
.context("Could not parse CREATE TEMPORARY TABLE privilege")?,
|
.context("Could not parse CREATE TEMPORARY TABLE privilege")?,
|
||||||
lock_tables_priv: parse_permission(*line_parts.get(11).unwrap())
|
lock_tables_priv: parse_permission(line_parts.get(11).unwrap())
|
||||||
.context("Could not parse LOCK TABLES privilege")?,
|
.context("Could not parse LOCK TABLES privilege")?,
|
||||||
references_priv: parse_permission(*line_parts.get(12).unwrap())
|
references_priv: parse_permission(line_parts.get(12).unwrap())
|
||||||
.context("Could not parse REFERENCES privilege")?,
|
.context("Could not parse REFERENCES privilege")?,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -436,20 +435,26 @@ async fn edit_permissions(
|
||||||
} else {
|
} else {
|
||||||
let comment = indoc! {r#"
|
let comment = indoc! {r#"
|
||||||
# Welcome to the permission editor.
|
# Welcome to the permission editor.
|
||||||
# To add permissions
|
# Each line defines what permissions a single user has on a single database.
|
||||||
|
# The first two columns respectively represent the database name and the user, and the remaining columns are the permissions.
|
||||||
|
# If the user should have a permission, write 'Y', otherwise write 'N'.
|
||||||
|
#
|
||||||
|
# Lines starting with '#' are comments and will be ignored.
|
||||||
"#};
|
"#};
|
||||||
let header = DATABASE_PRIVILEGE_FIELDS
|
let header = DATABASE_PRIVILEGE_FIELDS
|
||||||
.map(db_priv_field_human_readable_name)
|
.map(db_priv_field_human_readable_name)
|
||||||
.join("\t");
|
.join("\t");
|
||||||
let example_line = {
|
let example_line = {
|
||||||
let unix_user = get_current_unix_user()?;
|
let unix_user = get_current_unix_user()?;
|
||||||
let mut rng = thread_rng();
|
let permissions_bools = [
|
||||||
let random_yes_nos = (0..(DATABASE_PRIVILEGE_FIELDS.len() - 2))
|
true, true, true, true, false, false, false, false, false, false, false,
|
||||||
.map(|_| ['Y', 'N'].choose(&mut rng).unwrap())
|
]
|
||||||
.join("\t");
|
.map(yn)
|
||||||
|
.join("\t");
|
||||||
|
|
||||||
format!(
|
format!(
|
||||||
"# {}_db\t{}_user\t{}",
|
"# {}_db\t{}_user\t{}",
|
||||||
unix_user.name, unix_user.name, random_yes_nos
|
unix_user.name, unix_user.name, permissions_bools
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -162,14 +162,13 @@ impl DatabasePrivileges {
|
||||||
diff: DATABASE_PRIVILEGE_FIELDS
|
diff: DATABASE_PRIVILEGE_FIELDS
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.skip(2)
|
.skip(2)
|
||||||
.map(|field| {
|
.filter_map(|field| {
|
||||||
diff_single_priv(
|
diff_single_priv(
|
||||||
self.get_privilege_by_name(field),
|
self.get_privilege_by_name(field),
|
||||||
other.get_privilege_by_name(field),
|
other.get_privilege_by_name(field),
|
||||||
field,
|
field,
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
.flatten()
|
|
||||||
.collect(),
|
.collect(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue