fix test following ldap udpate

Reviewed-on: https://git.joinplu.me/Plume/Plume/pulls/828
Reviewed-by: Mina Galić <me+git@igalic.co>
This commit is contained in:
trinity-1686a 2020-10-08 19:18:04 +00:00
commit 0cd26dfbf4
2 changed files with 34 additions and 29 deletions

View File

@ -252,26 +252,28 @@ pub struct LdapConfig {
fn get_ldap_config() -> Option<LdapConfig> { fn get_ldap_config() -> Option<LdapConfig> {
let addr = var("LDAP_ADDR").ok(); let addr = var("LDAP_ADDR").ok();
let base_dn = var("LDAP_BASE_DN").ok(); let base_dn = var("LDAP_BASE_DN").ok();
if addr.is_some() && base_dn.is_some() { match (addr, base_dn) {
let tls = var("LDAP_TLS").unwrap_or_else(|_| "false".to_owned()); (Some(addr), Some(base_dn)) => {
let tls = match tls.as_ref() { let tls = var("LDAP_TLS").unwrap_or_else(|_| "false".to_owned());
"1" | "true" | "TRUE" => true, let tls = match tls.as_ref() {
"0" | "false" | "FALSE" => false, "1" | "true" | "TRUE" => true,
_ => panic!("Invalid LDAP configuration : tls"), "0" | "false" | "FALSE" => false,
}; _ => 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()); let user_name_attr = var("LDAP_USER_NAME_ATTR").unwrap_or_else(|_| "cn".to_owned());
Some(LdapConfig { let mail_attr = var("LDAP_USER_MAIL_ATTR").unwrap_or_else(|_| "mail".to_owned());
addr: addr.unwrap(), Some(LdapConfig {
base_dn: base_dn.unwrap(), addr,
tls, base_dn,
user_name_attr, tls,
mail_attr, user_name_attr,
}) mail_attr,
} else if addr.is_some() || base_dn.is_some() { })
panic!("Invalid LDAP configuration : both LDAP_ADDR and LDAP_BASE_DN must be set") }
} else { (None, None) => None,
None (_, _) => {
panic!("Invalid LDAP configuration : both LDAP_ADDR and LDAP_BASE_DN must be set")
}
} }
} }

View File

@ -322,7 +322,7 @@ impl User {
for entry in search.0 { for entry in search.0 {
let entry = SearchEntry::construct(entry); 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() { if let Some(email) = email {
let _ = ldap_conn.unbind(); let _ = ldap_conn.unbind();
return NewUser::new_local( return NewUser::new_local(
conn, conn,
@ -330,7 +330,7 @@ impl User {
name.to_owned(), name.to_owned(),
Role::Normal, Role::Normal,
"", "",
email.unwrap().to_owned(), email.to_owned(),
None, None,
); );
} }
@ -1149,7 +1149,7 @@ pub(crate) mod tests {
Role::Admin, Role::Admin,
"Hello there, I'm the admin", "Hello there, I'm the admin",
"admin@example.com".to_owned(), "admin@example.com".to_owned(),
"invalid_admin_password".to_owned(), Some("invalid_admin_password".to_owned()),
) )
.unwrap(); .unwrap();
let user = NewUser::new_local( let user = NewUser::new_local(
@ -1159,7 +1159,7 @@ pub(crate) mod tests {
Role::Normal, Role::Normal,
"Hello there, I'm no one", "Hello there, I'm no one",
"user@example.com".to_owned(), "user@example.com".to_owned(),
"invalid_user_password".to_owned(), Some("invalid_user_password".to_owned()),
) )
.unwrap(); .unwrap();
let other = NewUser::new_local( let other = NewUser::new_local(
@ -1169,7 +1169,7 @@ pub(crate) mod tests {
Role::Normal, Role::Normal,
"Hello there, I'm someone else", "Hello there, I'm someone else",
"other@example.com".to_owned(), "other@example.com".to_owned(),
"invalid_other_password".to_owned(), Some("invalid_other_password".to_owned()),
) )
.unwrap(); .unwrap();
vec![admin, user, other] vec![admin, user, other]
@ -1188,7 +1188,7 @@ pub(crate) mod tests {
Role::Normal, Role::Normal,
"Hello I'm a test", "Hello I'm a test",
"test@example.com".to_owned(), "test@example.com".to_owned(),
User::hash_pass("test_password").unwrap(), Some(User::hash_pass("test_password").unwrap()),
) )
.unwrap(); .unwrap();
assert_eq!( assert_eq!(
@ -1271,12 +1271,15 @@ pub(crate) mod tests {
Role::Normal, Role::Normal,
"Hello I'm a test", "Hello I'm a test",
"test@example.com".to_owned(), "test@example.com".to_owned(),
User::hash_pass("test_password").unwrap(), Some(User::hash_pass("test_password").unwrap()),
) )
.unwrap(); .unwrap();
assert!(test_user.auth("test_password")); assert_eq!(
assert!(!test_user.auth("other_password")); User::login(conn, "test", "test_password").unwrap().id,
test_user.id
);
assert!(User::login(conn, "test", "other_password").is_err());
Ok(()) Ok(())
}); });
} }