fmt: fmt and clippy

This commit is contained in:
silver 2023-05-26 00:51:36 +01:00
parent 1cdc732885
commit 311029574f
2 changed files with 24 additions and 22 deletions

View file

@ -23,7 +23,7 @@ pub async fn db_init(database: &str) -> Result<Pool<Sqlite>, Error> {
) )
.execute(&pool) .execute(&pool)
.await?; .await?;
*/ */
// set up indexes? // set up indexes?

View file

@ -1,18 +1,17 @@
use std::collections::HashSet;
use ldap3::result::Result;
use ldap3::{LdapConn, Scope, SearchEntry, Mod};
use base64::{Engine as _, engine::general_purpose}; use ldap3::{LdapConn, Mod, Scope, SearchEntry};
use crypto::{sha2::Sha512, digest::Digest}; use std::collections::HashSet;
use base64::{engine::general_purpose, Engine as _};
use crypto::{digest::Digest, sha2::Sha512};
// for teh webserver // for teh webserver
use dotenv::dotenv;
use skynet_ldap_server::db_init;
use sqlx::{Pool, Sqlite}; use sqlx::{Pool, Sqlite};
use std::env; use std::env;
use dotenv::dotenv;
use tide::prelude::*; use tide::prelude::*;
use tide::{Request, Response}; use tide::{Request, Response};
use skynet_ldap_server::db_init;
#[derive(Clone)] #[derive(Clone)]
struct State { struct State {
@ -42,7 +41,6 @@ async fn main() -> tide::Result<()> {
Ok(()) Ok(())
} }
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
struct Config { struct Config {
ldap_host: String, ldap_host: String,
@ -76,27 +74,31 @@ fn get_config() -> Config {
pub fn hex_to_base64(hex: &str) -> String { pub fn hex_to_base64(hex: &str) -> String {
// Make vector of bytes from octets // Make vector of bytes from octets
let mut bytes = Vec::new(); let mut bytes = Vec::new();
for i in 0..(hex.len()/2) { for i in 0..(hex.len() / 2) {
let res = u8::from_str_radix(&hex[2*i .. 2*i+2], 16); let res = u8::from_str_radix(&hex[2 * i..2 * i + 2], 16);
match res { match res {
Ok(v) => bytes.push(v), Ok(v) => bytes.push(v),
Err(e) => println!("Problem with hex: {}", e), Err(e) => println!("Problem with hex: {}", e),
}; };
}; }
general_purpose::STANDARD.encode(&bytes) // now convert from Vec<u8> to b64-encoded String general_purpose::STANDARD.encode(&bytes) // now convert from Vec<u8> to b64-encoded String
} }
#[derive(Debug, Deserialize)] #[derive(Debug, Deserialize)]
struct LdapUpdate { struct LdapUpdate {
user: String, user: String,
pass: String, pass: String,
field: String, field: String,
value: String value: String,
} }
async fn post_update_ldap(mut req: Request<State>) -> tide::Result { async fn post_update_ldap(mut req: Request<State>) -> tide::Result {
let LdapUpdate { user, pass, field, value } = req.body_json().await?; let LdapUpdate {
user,
pass,
field,
value,
} = req.body_json().await?;
let config = &req.state().config; let config = &req.state().config;
@ -110,26 +112,26 @@ async fn post_update_ldap(mut req: Request<State>) -> tide::Result {
let mut pw_keep_same = false; let mut pw_keep_same = false;
// get the users current password hash // get the users current password hash
let (rs, _res) = ldap.search(&dn,Scope::Base,"(objectClass=*)",vec!["userPassword"])?.success()?; let (rs, _res) = ldap.search(&dn, Scope::Base, "(objectClass=*)", vec!["userPassword"])?.success()?;
if !rs.is_empty() { if !rs.is_empty() {
let tmp = SearchEntry::construct(rs[0].clone()); let tmp = SearchEntry::construct(rs[0].clone());
if !tmp.attrs["userPassword"].is_empty() && tmp.attrs["userPassword"][0].starts_with("{SHA512}") { if !tmp.attrs["userPassword"].is_empty() && tmp.attrs["userPassword"][0].starts_with("{SHA512}") {
pw_keep_same = true; pw_keep_same = true;
} }
} }
let mut mods = vec![]; let mut mods = vec![];
// check if the password field itself is being updated // check if the password field itself is being updated
let pass_new = if &field != "userPassword" { let pass_new = if &field != "userPassword" {
mods.push(Mod::Replace(field, HashSet::from([value]))); mods.push(Mod::Replace(field, HashSet::from([value])));
// retain the older password // retain the older password
pass pass
} else { } else {
pw_keep_same = false; pw_keep_same = false;
value value
}; };
if !pw_keep_same { if !pw_keep_same {
let mut hasher = Sha512::new(); let mut hasher = Sha512::new();
@ -145,7 +147,7 @@ async fn post_update_ldap(mut req: Request<State>) -> tide::Result {
}; };
ldap.modify(&dn, mods)?.success()?; ldap.modify(&dn, mods)?.success()?;
ldap.unbind()?; ldap.unbind()?;
Ok(format!("Hello, {}! I've put in an order for {} shoes", "name", "legs").into()) Ok(format!("Hello, {}! I've put in an order for {} shoes", "name", "legs").into())