mirror of
https://github.com/lldap/lldap.git
synced 2026-07-25 17:58:44 +00:00
server: don't error on global searches if only one side fails
This commit is contained in:
committed by
nitnelave
parent
e308a5e9a1
commit
addd453287
@@ -570,10 +570,27 @@ impl<Backend: BackendHandler + LoginHandler + OpaqueHandler> LdapHandler<Backend
|
|||||||
.await
|
.await
|
||||||
});
|
});
|
||||||
Ok(match scope {
|
Ok(match scope {
|
||||||
SearchScope::Global => InternalSearchResults::UsersAndGroups(
|
SearchScope::Global => {
|
||||||
get_user_list(&request.filter).await?,
|
let users = get_user_list(&request.filter).await;
|
||||||
get_group_list(&request.filter).await?,
|
let groups = get_group_list(&request.filter).await;
|
||||||
),
|
match (users, groups) {
|
||||||
|
(Ok(users), Err(e)) => {
|
||||||
|
warn!("Error while getting groups: {:#}", e);
|
||||||
|
InternalSearchResults::UsersAndGroups(users, Vec::new())
|
||||||
|
}
|
||||||
|
(Err(e), Ok(groups)) => {
|
||||||
|
warn!("Error while getting users: {:#}", e);
|
||||||
|
InternalSearchResults::UsersAndGroups(Vec::new(), groups)
|
||||||
|
}
|
||||||
|
(Err(user_error), Err(_)) => {
|
||||||
|
InternalSearchResults::Raw(vec![make_search_error(
|
||||||
|
user_error.code,
|
||||||
|
user_error.message,
|
||||||
|
)])
|
||||||
|
}
|
||||||
|
(Ok(users), Ok(groups)) => InternalSearchResults::UsersAndGroups(users, groups),
|
||||||
|
}
|
||||||
|
}
|
||||||
SearchScope::Users => InternalSearchResults::UsersAndGroups(
|
SearchScope::Users => InternalSearchResults::UsersAndGroups(
|
||||||
get_user_list(&request.filter).await?,
|
get_user_list(&request.filter).await?,
|
||||||
Vec::new(),
|
Vec::new(),
|
||||||
|
|||||||
Reference in New Issue
Block a user