fmt: fmt and clippy
This commit is contained in:
parent
1cdc732885
commit
311029574f
2 changed files with 24 additions and 22 deletions
36
src/main.rs
36
src/main.rs
|
@ -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,7 +112,7 @@ 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}") {
|
||||||
|
@ -122,7 +124,7 @@ async fn post_update_ldap(mut req: Request<State>) -> tide::Result {
|
||||||
|
|
||||||
// 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 {
|
||||||
|
|
Loading…
Reference in a new issue