From 8975b0f9e983b31ff897f7a2270140616252c93e Mon Sep 17 00:00:00 2001 From: Trinity Pointard Date: Sun, 4 Oct 2020 12:18:54 +0200 Subject: [PATCH] cargo fmt --- plume-models/src/config.rs | 4 +-- plume-models/src/users.rs | 53 ++++++++++++++++++++++++-------------- 2 files changed, 36 insertions(+), 21 deletions(-) diff --git a/plume-models/src/config.rs b/plume-models/src/config.rs index 33e6422a..1a31ae33 100644 --- a/plume-models/src/config.rs +++ b/plume-models/src/config.rs @@ -255,9 +255,9 @@ fn get_ldap_config() -> Option { if addr.is_some() && base_dn.is_some() { let tls = var("LDAP_TLS").unwrap_or_else(|_| "false".to_owned()); let tls = match tls.as_ref() { - "1" | "true" | "TRUE" => true, + "1" | "true" | "TRUE" => true, "0" | "false" | "FALSE" => false, - _ => panic!("Invalid LDAP configuration : tls") + _ => panic!("Invalid LDAP configuration : tls"), }; let user_name_attr = var("LDAP_USER_NAME_ATTR").unwrap_or_else(|_| "cn".to_owned()); let mail_attr = var("LDAP_USER_MAIL_ATTR").unwrap_or_else(|_| "mail".to_owned()); diff --git a/plume-models/src/users.rs b/plume-models/src/users.rs index 900120a2..f4df651e 100644 --- a/plume-models/src/users.rs +++ b/plume-models/src/users.rs @@ -1,8 +1,8 @@ use crate::{ - ap_url, blocklisted_emails::BlocklistedEmail, blogs::Blog, config::CONFIG, db_conn::DbConn, follows::Follow, - instance::*, medias::Media, notifications::Notification, post_authors::PostAuthor, posts::Post, - safe_string::SafeString, schema::users, search::Searcher, timeline::Timeline, Connection, - Error, PlumeRocket, Result, ITEMS_PER_PAGE, + ap_url, blocklisted_emails::BlocklistedEmail, blogs::Blog, config::CONFIG, db_conn::DbConn, + follows::Follow, instance::*, medias::Media, notifications::Notification, + post_authors::PostAuthor, posts::Post, safe_string::SafeString, schema::users, + search::Searcher, timeline::Timeline, Connection, Error, PlumeRocket, Result, ITEMS_PER_PAGE, }; use activitypub::{ activity::Delete, @@ -14,7 +14,7 @@ use activitypub::{ use bcrypt; use chrono::{NaiveDateTime, Utc}; use diesel::{self, BelongingToDsl, ExpressionMethods, OptionalExtension, QueryDsl, RunQueryDsl}; -use ldap3::{LdapConn, SearchEntry, Scope}; +use ldap3::{LdapConn, Scope, SearchEntry}; use openssl::{ hash::MessageDigest, pkey::{PKey, Private}, @@ -297,16 +297,23 @@ impl User { if let Some(ldap) = CONFIG.ldap.as_ref() { let mut ldap_conn = LdapConn::new(&ldap.addr).map_err(|_| Error::NotFound)?; let ldap_name = format!("{}={},{}", ldap.user_name_attr, name, ldap.base_dn); - let bind = ldap_conn.simple_bind(&ldap_name, password).map_err(|_| Error::NotFound)?; + let bind = ldap_conn + .simple_bind(&ldap_name, password) + .map_err(|_| Error::NotFound)?; if bind.success().is_ok() { - let search = ldap_conn.search(&ldap_name, Scope::Base, "(|(objectClass=person)(objectClass=user))", vec![&ldap.mail_attr]) + let search = ldap_conn + .search( + &ldap_name, + Scope::Base, + "(|(objectClass=person)(objectClass=user))", + vec![&ldap.mail_attr], + ) .map_err(|_| Error::NotFound)? .success() .map_err(|_| Error::NotFound)?; for entry in search.0 { let entry = SearchEntry::construct(entry); - let email = entry.attrs.get("mail") - .and_then(|vec| vec.first()); + let email = entry.attrs.get("mail").and_then(|vec| vec.first()); if email.is_some() { let _ = ldap_conn.unbind(); return NewUser::new_local( @@ -337,7 +344,10 @@ impl User { } else { return false; }; - let name = format!("{}={},{}", ldap.user_name_attr, &self.username, ldap.base_dn); + let name = format!( + "{}={},{}", + ldap.user_name_attr, &self.username, ldap.base_dn + ); if let Ok(bind) = conn.simple_bind(&name, password) { bind.success().is_ok() } else { @@ -352,35 +362,40 @@ impl User { let local_id = Instance::get_local()?.id; let user = User::find_by_email(conn, ident) .or_else(|_| User::find_by_name(conn, ident, local_id)) - .and_then(|u| if u.instance_id == local_id { - Ok(u) - } else { - Err(Error::NotFound) + .and_then(|u| { + if u.instance_id == local_id { + Ok(u) + } else { + Err(Error::NotFound) + } }); match user { Ok(user) if user.hashed_password.is_some() => { - if bcrypt::verify(password, user.hashed_password.as_ref().unwrap()).unwrap_or(false) { + if bcrypt::verify(password, user.hashed_password.as_ref().unwrap()).unwrap_or(false) + { Ok(user) } else { Err(Error::NotFound) } - }, + } Ok(user) => { if user.ldap_login(password) { Ok(user) } else { Err(Error::NotFound) } - }, + } e => { if let Ok(user) = User::ldap_register(conn, ident, password) { return Ok(user); } - let other = User::get(&*conn, 1).expect("No user is registered").hashed_password; + let other = User::get(&*conn, 1) + .expect("No user is registered") + .hashed_password; other.map(|pass| bcrypt::verify(password, &pass)); e - }, + } } }