ldap: return user's avatar

This commit is contained in:
Valentin Tolmer 2022-08-07 18:17:39 +02:00 committed by nitnelave
parent 697a64991d
commit b130965264

View File

@ -170,6 +170,13 @@ fn get_user_attribute(
"mail" => vec![user.email.clone().into_bytes()], "mail" => vec![user.email.clone().into_bytes()],
"givenname" => vec![user.first_name.clone().into_bytes()], "givenname" => vec![user.first_name.clone().into_bytes()],
"sn" => vec![user.last_name.clone().into_bytes()], "sn" => vec![user.last_name.clone().into_bytes()],
"jpegphoto" => {
let bytes = user.avatar.clone().into_bytes();
if bytes.is_empty() {
return Ok(None);
}
vec![bytes]
}
"memberof" => groups "memberof" => groups
.into_iter() .into_iter()
.flatten() .flatten()
@ -238,6 +245,7 @@ const ALL_USER_ATTRIBUTE_KEYS: &[&str] = &[
"givenname", "givenname",
"sn", "sn",
"cn", "cn",
"jpegPhoto",
"createtimestamp", "createtimestamp",
]; ];
@ -1481,6 +1489,7 @@ mod tests {
"cn", "cn",
"createTimestamp", "createTimestamp",
"entryUuid", "entryUuid",
"jpegPhoto",
], ],
); );
assert_eq!( assert_eq!(
@ -1568,6 +1577,10 @@ mod tests {
atype: "entryUuid".to_string(), atype: "entryUuid".to_string(),
vals: vec![b"04ac75e0-2900-3e21-926c-2f732c26b3fc".to_vec()] vals: vec![b"04ac75e0-2900-3e21-926c-2f732c26b3fc".to_vec()]
}, },
LdapPartialAttribute {
atype: "jpegPhoto".to_string(),
vals: vec![JpegPhoto::for_tests().into_bytes()]
},
], ],
}), }),
make_search_success(), make_search_success(),
@ -2067,6 +2080,7 @@ mod tests {
display_name: "Bôb Böbberson".to_string(), display_name: "Bôb Böbberson".to_string(),
first_name: "Bôb".to_string(), first_name: "Bôb".to_string(),
last_name: "Böbberson".to_string(), last_name: "Böbberson".to_string(),
avatar: JpegPhoto::for_tests(),
..Default::default() ..Default::default()
}, },
groups: None, groups: None,
@ -2125,6 +2139,10 @@ mod tests {
atype: "cn".to_string(), atype: "cn".to_string(),
vals: vec!["Bôb Böbberson".to_string().into_bytes()], vals: vec!["Bôb Böbberson".to_string().into_bytes()],
}, },
LdapPartialAttribute {
atype: "jpegPhoto".to_string(),
vals: vec![JpegPhoto::for_tests().into_bytes()],
},
LdapPartialAttribute { LdapPartialAttribute {
atype: "createtimestamp".to_string(), atype: "createtimestamp".to_string(),
vals: vec![chrono::Utc.timestamp(0, 0).to_rfc3339().into_bytes()], vals: vec![chrono::Utc.timestamp(0, 0).to_rfc3339().into_bytes()],