Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #![allow(warnings)]
- #[macro_use]
- extern crate diesel;
- extern crate dotenv;
- #[macro_use]
- extern crate clap;
- extern crate baselib;
- extern crate crypto;
- use std::option::Option;
- use std::string::*;
- use clap::{App, Arg, SubCommand};
- use diesel::prelude::*;
- use baselib::models::user::*;
- use baselib::schema::users::table as users;
- use baselib::util::db::establish_db_connection;
- use crypto::digest::Digest;
- use crypto::sha1::*;
- fn main() {
- dotenv::dotenv().ok();
- let conn = establish_db_connection();
- let matches = App::new("create_user")
- .version("0.1")
- .author("Daniel W. <daniel.wanner@tubber.xyz>")
- .about("Creates a user for first login")
- .arg(
- Arg::with_name("username")
- .help("Creates a user with the specified username.")
- .required(true)
- .index(1),
- )
- .arg(
- Arg::with_name("password")
- .help("Creates a user with the specified password.")
- .required(true)
- .index(2),
- )
- .get_matches();
- let username_res = matches.value_of("username");
- let password_res = matches.value_of("password");
- if username_res.is_none() || password_res.is_none() {
- println!("\tERROR! Please supply username and password!");
- std::process::exit(-127);
- }
- let _username = username_res.unwrap();
- let password_ref = password_res.unwrap();
- let mut sha1 = Sha1::new();
- sha1.input_str(password_ref);
- let _password = sha1.result_str();
- let _email = format!("{}@mail.org", _username);
- let new_user = NewUser {
- username: String::from(_username),
- password: String::from(_password),
- email: _email,
- first_name: Some(String::from(_username)),
- last_name: Some(String::from("N/A")),
- level: 2,
- };
- let query = diesel::insert_into(users).values(&new_user);
- let rows_inserted = query.execute(&conn);
- if rows_inserted.is_err() {
- println!("\tERROR! Couldn't add user!");
- std::process::exit(-126);
- }
- let mut row_count: i32 = 0;
- match rows_inserted {
- Ok(rows) => row_count = rows as i32,
- Err(err) => println!("{}", err),
- };
- println!(
- "\tSUCCESS! Added user {}.{} row added.",
- _username, row_count
- );
- }
Add Comment
Please, Sign In to add comment