Remove randomly generated example, run clippy. Fixes #6
This commit is contained in:
		
							
								
								
									
										1
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							@@ -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"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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(),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user