mirror of
https://github.com/lldap/lldap.git
synced 2026-03-31 15:07:48 +01:00
server: cleanup extra mut in ldap handler
This commit is contained in:
committed by
nitnelave
parent
7450ff1028
commit
cdf43f2a69
@@ -80,7 +80,7 @@ mod tests {
|
|||||||
}])
|
}])
|
||||||
});
|
});
|
||||||
mock.expect_list_groups().returning(|_| Ok(vec![]));
|
mock.expect_list_groups().returning(|_| Ok(vec![]));
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
let dn = "uid=bob,ou=people,dc=example,dc=com";
|
let dn = "uid=bob,ou=people,dc=example,dc=com";
|
||||||
let request = LdapCompareRequest {
|
let request = LdapCompareRequest {
|
||||||
dn: dn.to_string(),
|
dn: dn.to_string(),
|
||||||
@@ -128,7 +128,7 @@ mod tests {
|
|||||||
attributes: Vec::new(),
|
attributes: Vec::new(),
|
||||||
}])
|
}])
|
||||||
});
|
});
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
let dn = "uid=group,ou=groups,dc=example,dc=com";
|
let dn = "uid=group,ou=groups,dc=example,dc=com";
|
||||||
let request = LdapCompareRequest {
|
let request = LdapCompareRequest {
|
||||||
dn: dn.to_string(),
|
dn: dn.to_string(),
|
||||||
@@ -155,7 +155,7 @@ mod tests {
|
|||||||
Ok(vec![])
|
Ok(vec![])
|
||||||
});
|
});
|
||||||
mock.expect_list_groups().returning(|_| Ok(vec![]));
|
mock.expect_list_groups().returning(|_| Ok(vec![]));
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
let dn = "uid=bob,ou=people,dc=example,dc=com";
|
let dn = "uid=bob,ou=people,dc=example,dc=com";
|
||||||
let request = LdapCompareRequest {
|
let request = LdapCompareRequest {
|
||||||
dn: dn.to_string(),
|
dn: dn.to_string(),
|
||||||
@@ -189,7 +189,7 @@ mod tests {
|
|||||||
}])
|
}])
|
||||||
});
|
});
|
||||||
mock.expect_list_groups().returning(|_| Ok(vec![]));
|
mock.expect_list_groups().returning(|_| Ok(vec![]));
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
let dn = "uid=bob,ou=people,dc=example,dc=com";
|
let dn = "uid=bob,ou=people,dc=example,dc=com";
|
||||||
let request = LdapCompareRequest {
|
let request = LdapCompareRequest {
|
||||||
dn: dn.to_string(),
|
dn: dn.to_string(),
|
||||||
@@ -222,7 +222,7 @@ mod tests {
|
|||||||
attributes: Vec::new(),
|
attributes: Vec::new(),
|
||||||
}])
|
}])
|
||||||
});
|
});
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
let dn = "uid=group,ou=groups,dc=example,dc=com";
|
let dn = "uid=group,ou=groups,dc=example,dc=com";
|
||||||
let request = LdapCompareRequest {
|
let request = LdapCompareRequest {
|
||||||
dn: dn.to_string(),
|
dn: dn.to_string(),
|
||||||
|
|||||||
@@ -139,10 +139,7 @@ impl<Backend: BackendHandler + LoginHandler + OpaqueHandler> LdapHandler<Backend
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn do_search_or_dse(
|
pub async fn do_search_or_dse(&self, request: &LdapSearchRequest) -> LdapResult<Vec<LdapOp>> {
|
||||||
&mut self,
|
|
||||||
request: &LdapSearchRequest,
|
|
||||||
) -> LdapResult<Vec<LdapOp>> {
|
|
||||||
if is_root_dse_request(request) {
|
if is_root_dse_request(request) {
|
||||||
debug!("rootDSE request");
|
debug!("rootDSE request");
|
||||||
return Ok(vec![
|
return Ok(vec![
|
||||||
@@ -192,7 +189,7 @@ impl<Backend: BackendHandler + LoginHandler + OpaqueHandler> LdapHandler<Backend
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[instrument(skip_all, level = "debug")]
|
#[instrument(skip_all, level = "debug")]
|
||||||
async fn do_extended_request(&mut self, request: &LdapExtendedRequest) -> Vec<LdapOp> {
|
async fn do_extended_request(&self, request: &LdapExtendedRequest) -> Vec<LdapOp> {
|
||||||
match request.name.as_str() {
|
match request.name.as_str() {
|
||||||
OID_PASSWORD_MODIFY => match LdapPasswordModifyRequest::try_from(request) {
|
OID_PASSWORD_MODIFY => match LdapPasswordModifyRequest::try_from(request) {
|
||||||
Ok(password_request) => {
|
Ok(password_request) => {
|
||||||
@@ -237,7 +234,7 @@ impl<Backend: BackendHandler + LoginHandler + OpaqueHandler> LdapHandler<Backend
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[instrument(skip_all, level = "debug", fields(dn = %request.dn))]
|
#[instrument(skip_all, level = "debug", fields(dn = %request.dn))]
|
||||||
pub async fn do_modify_request(&mut self, request: &LdapModifyRequest) -> Vec<LdapOp> {
|
pub async fn do_modify_request(&self, request: &LdapModifyRequest) -> Vec<LdapOp> {
|
||||||
let credentials = match self.get_credentials() {
|
let credentials = match self.get_credentials() {
|
||||||
Credentials::Bound(cred) => cred,
|
Credentials::Bound(cred) => cred,
|
||||||
Credentials::Unbound(err) => return err,
|
Credentials::Unbound(err) => return err,
|
||||||
@@ -283,7 +280,7 @@ impl<Backend: BackendHandler + LoginHandler + OpaqueHandler> LdapHandler<Backend
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[instrument(skip_all, level = "debug")]
|
#[instrument(skip_all, level = "debug")]
|
||||||
pub async fn do_compare(&mut self, request: LdapCompareRequest) -> LdapResult<Vec<LdapOp>> {
|
pub async fn do_compare(&self, request: LdapCompareRequest) -> LdapResult<Vec<LdapOp>> {
|
||||||
let req = make_search_request::<String>(
|
let req = make_search_request::<String>(
|
||||||
&self.ldap_info.base_dn_str,
|
&self.ldap_info.base_dn_str,
|
||||||
LdapFilter::Equality("dn".to_string(), request.dn.to_string()),
|
LdapFilter::Equality("dn".to_string(), request.dn.to_string()),
|
||||||
|
|||||||
@@ -210,7 +210,7 @@ mod tests {
|
|||||||
let mut mock = MockTestBackendHandler::new();
|
let mut mock = MockTestBackendHandler::new();
|
||||||
setup_target_user_groups(&mut mock, "bob", Vec::new());
|
setup_target_user_groups(&mut mock, "bob", Vec::new());
|
||||||
expect_password_change(&mut mock, "bob");
|
expect_password_change(&mut mock, "bob");
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
let request = make_password_modify_request("bob");
|
let request = make_password_modify_request("bob");
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
ldap_handler.do_modify_request(&request).await,
|
ldap_handler.do_modify_request(&request).await,
|
||||||
@@ -223,7 +223,7 @@ mod tests {
|
|||||||
let mut mock = MockTestBackendHandler::new();
|
let mut mock = MockTestBackendHandler::new();
|
||||||
setup_target_user_groups(&mut mock, "test", Vec::new());
|
setup_target_user_groups(&mut mock, "test", Vec::new());
|
||||||
expect_password_change(&mut mock, "test");
|
expect_password_change(&mut mock, "test");
|
||||||
let mut ldap_handler = setup_bound_handler_with_group(mock, "regular").await;
|
let ldap_handler = setup_bound_handler_with_group(mock, "regular").await;
|
||||||
let request = make_password_modify_request("test");
|
let request = make_password_modify_request("test");
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
ldap_handler.do_modify_request(&request).await,
|
ldap_handler.do_modify_request(&request).await,
|
||||||
@@ -236,7 +236,7 @@ mod tests {
|
|||||||
let mut mock = MockTestBackendHandler::new();
|
let mut mock = MockTestBackendHandler::new();
|
||||||
setup_target_user_groups(&mut mock, "bob", Vec::new());
|
setup_target_user_groups(&mut mock, "bob", Vec::new());
|
||||||
expect_password_change(&mut mock, "bob");
|
expect_password_change(&mut mock, "bob");
|
||||||
let mut ldap_handler = setup_bound_password_manager_handler(mock).await;
|
let ldap_handler = setup_bound_password_manager_handler(mock).await;
|
||||||
let request = make_password_modify_request("bob");
|
let request = make_password_modify_request("bob");
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
ldap_handler.do_modify_request(&request).await,
|
ldap_handler.do_modify_request(&request).await,
|
||||||
@@ -248,7 +248,7 @@ mod tests {
|
|||||||
async fn test_modify_password_of_admin_as_password_manager() {
|
async fn test_modify_password_of_admin_as_password_manager() {
|
||||||
let mut mock = MockTestBackendHandler::new();
|
let mut mock = MockTestBackendHandler::new();
|
||||||
setup_target_user_groups(&mut mock, "bob", vec!["lldap_admin"]);
|
setup_target_user_groups(&mut mock, "bob", vec!["lldap_admin"]);
|
||||||
let mut ldap_handler = setup_bound_password_manager_handler(mock).await;
|
let ldap_handler = setup_bound_password_manager_handler(mock).await;
|
||||||
let request = make_password_modify_request("bob");
|
let request = make_password_modify_request("bob");
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
ldap_handler.do_modify_request(&request).await,
|
ldap_handler.do_modify_request(&request).await,
|
||||||
@@ -261,7 +261,7 @@ mod tests {
|
|||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_modify_password_of_other_regular_as_regular() {
|
async fn test_modify_password_of_other_regular_as_regular() {
|
||||||
let mut ldap_handler =
|
let ldap_handler =
|
||||||
setup_bound_handler_with_group(MockTestBackendHandler::new(), "regular").await;
|
setup_bound_handler_with_group(MockTestBackendHandler::new(), "regular").await;
|
||||||
let request = make_password_modify_request("bob");
|
let request = make_password_modify_request("bob");
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
@@ -278,7 +278,7 @@ mod tests {
|
|||||||
let mut mock = MockTestBackendHandler::new();
|
let mut mock = MockTestBackendHandler::new();
|
||||||
setup_target_user_groups(&mut mock, "test", vec!["lldap_admin"]);
|
setup_target_user_groups(&mut mock, "test", vec!["lldap_admin"]);
|
||||||
expect_password_change(&mut mock, "test");
|
expect_password_change(&mut mock, "test");
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
let request = make_password_modify_request("test");
|
let request = make_password_modify_request("test");
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
ldap_handler.do_modify_request(&request).await,
|
ldap_handler.do_modify_request(&request).await,
|
||||||
@@ -290,7 +290,7 @@ mod tests {
|
|||||||
async fn test_modify_password_invalid_number_of_values() {
|
async fn test_modify_password_invalid_number_of_values() {
|
||||||
let mut mock = MockTestBackendHandler::new();
|
let mut mock = MockTestBackendHandler::new();
|
||||||
setup_target_user_groups(&mut mock, "bob", Vec::new());
|
setup_target_user_groups(&mut mock, "bob", Vec::new());
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
let request = {
|
let request = {
|
||||||
let target_user = "bob";
|
let target_user = "bob";
|
||||||
LdapModifyRequest {
|
LdapModifyRequest {
|
||||||
|
|||||||
@@ -342,7 +342,7 @@ mod tests {
|
|||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_search_root_dse() {
|
async fn test_search_root_dse() {
|
||||||
let mut ldap_handler = setup_bound_admin_handler(MockTestBackendHandler::new()).await;
|
let ldap_handler = setup_bound_admin_handler(MockTestBackendHandler::new()).await;
|
||||||
let request = LdapSearchRequest {
|
let request = LdapSearchRequest {
|
||||||
base: "".to_string(),
|
base: "".to_string(),
|
||||||
scope: LdapSearchScope::Base,
|
scope: LdapSearchScope::Base,
|
||||||
@@ -383,7 +383,7 @@ mod tests {
|
|||||||
groups: None,
|
groups: None,
|
||||||
}])
|
}])
|
||||||
});
|
});
|
||||||
let mut ldap_handler = setup_bound_handler_with_group(mock, "regular").await;
|
let ldap_handler = setup_bound_handler_with_group(mock, "regular").await;
|
||||||
|
|
||||||
let request =
|
let request =
|
||||||
make_user_search_request::<String>(LdapFilter::And(vec![]), vec!["1.1".to_string()]);
|
make_user_search_request::<String>(LdapFilter::And(vec![]), vec!["1.1".to_string()]);
|
||||||
@@ -406,7 +406,7 @@ mod tests {
|
|||||||
.with(eq(Some(true.into())), eq(false))
|
.with(eq(Some(true.into())), eq(false))
|
||||||
.times(1)
|
.times(1)
|
||||||
.return_once(|_, _| Ok(vec![]));
|
.return_once(|_, _| Ok(vec![]));
|
||||||
let mut ldap_handler = setup_bound_readonly_handler(mock).await;
|
let ldap_handler = setup_bound_readonly_handler(mock).await;
|
||||||
|
|
||||||
let request =
|
let request =
|
||||||
make_user_search_request::<String>(LdapFilter::And(vec![]), vec!["1.1".to_string()]);
|
make_user_search_request::<String>(LdapFilter::And(vec![]), vec!["1.1".to_string()]);
|
||||||
@@ -437,7 +437,7 @@ mod tests {
|
|||||||
}]),
|
}]),
|
||||||
}])
|
}])
|
||||||
});
|
});
|
||||||
let mut ldap_handler = setup_bound_readonly_handler(mock).await;
|
let ldap_handler = setup_bound_readonly_handler(mock).await;
|
||||||
|
|
||||||
let request = make_user_search_request::<String>(
|
let request = make_user_search_request::<String>(
|
||||||
LdapFilter::And(vec![]),
|
LdapFilter::And(vec![]),
|
||||||
@@ -471,7 +471,7 @@ mod tests {
|
|||||||
)
|
)
|
||||||
.times(1)
|
.times(1)
|
||||||
.return_once(|_, _| Ok(vec![]));
|
.return_once(|_, _| Ok(vec![]));
|
||||||
let mut ldap_handler = setup_bound_readonly_handler(mock).await;
|
let ldap_handler = setup_bound_readonly_handler(mock).await;
|
||||||
|
|
||||||
let request = LdapSearchRequest {
|
let request = LdapSearchRequest {
|
||||||
base: "uid=bob,ou=people,Dc=example,dc=com".to_string(),
|
base: "uid=bob,ou=people,Dc=example,dc=com".to_string(),
|
||||||
@@ -544,7 +544,7 @@ mod tests {
|
|||||||
},
|
},
|
||||||
])
|
])
|
||||||
});
|
});
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
let request = make_user_search_request(
|
let request = make_user_search_request(
|
||||||
LdapFilter::And(vec![]),
|
LdapFilter::And(vec![]),
|
||||||
vec![
|
vec![
|
||||||
@@ -684,7 +684,7 @@ mod tests {
|
|||||||
},
|
},
|
||||||
])
|
])
|
||||||
});
|
});
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
let request = make_group_search_request(
|
let request = make_group_search_request(
|
||||||
LdapFilter::And(vec![]),
|
LdapFilter::And(vec![]),
|
||||||
vec![
|
vec![
|
||||||
@@ -773,7 +773,7 @@ mod tests {
|
|||||||
attributes: Vec::new(),
|
attributes: Vec::new(),
|
||||||
}])
|
}])
|
||||||
});
|
});
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
let request = make_group_search_request(
|
let request = make_group_search_request(
|
||||||
LdapFilter::Equality("groupid".to_string(), "1".to_string()),
|
LdapFilter::Equality("groupid".to_string(), "1".to_string()),
|
||||||
vec!["dn"],
|
vec!["dn"],
|
||||||
@@ -823,7 +823,7 @@ mod tests {
|
|||||||
attributes: Vec::new(),
|
attributes: Vec::new(),
|
||||||
}])
|
}])
|
||||||
});
|
});
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
let request = make_group_search_request(
|
let request = make_group_search_request(
|
||||||
LdapFilter::And(vec![
|
LdapFilter::And(vec![
|
||||||
LdapFilter::Equality("cN".to_string(), "Group_1".to_string()),
|
LdapFilter::Equality("cN".to_string(), "Group_1".to_string()),
|
||||||
@@ -894,7 +894,7 @@ mod tests {
|
|||||||
attributes: Vec::new(),
|
attributes: Vec::new(),
|
||||||
}])
|
}])
|
||||||
});
|
});
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
let request = make_group_search_request(
|
let request = make_group_search_request(
|
||||||
LdapFilter::Or(vec![LdapFilter::Not(Box::new(LdapFilter::Equality(
|
LdapFilter::Or(vec![LdapFilter::Not(Box::new(LdapFilter::Equality(
|
||||||
"displayname".to_string(),
|
"displayname".to_string(),
|
||||||
@@ -965,7 +965,7 @@ mod tests {
|
|||||||
extra_group_object_classes: Vec::new(),
|
extra_group_object_classes: Vec::new(),
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
let request = make_group_search_request(
|
let request = make_group_search_request(
|
||||||
LdapFilter::Equality("Attr".to_string(), "TEST".to_string()),
|
LdapFilter::Equality("Attr".to_string(), "TEST".to_string()),
|
||||||
vec!["cn"],
|
vec!["cn"],
|
||||||
@@ -995,7 +995,7 @@ mod tests {
|
|||||||
]))))
|
]))))
|
||||||
.times(1)
|
.times(1)
|
||||||
.return_once(|_| Ok(vec![]));
|
.return_once(|_| Ok(vec![]));
|
||||||
let mut ldap_handler = setup_bound_readonly_handler(mock).await;
|
let ldap_handler = setup_bound_readonly_handler(mock).await;
|
||||||
|
|
||||||
let request = LdapSearchRequest {
|
let request = LdapSearchRequest {
|
||||||
base: "uid=rockstars,ou=groups,Dc=example,dc=com".to_string(),
|
base: "uid=rockstars,ou=groups,Dc=example,dc=com".to_string(),
|
||||||
@@ -1015,7 +1015,7 @@ mod tests {
|
|||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_search_groups_unsupported_substring() {
|
async fn test_search_groups_unsupported_substring() {
|
||||||
let mut ldap_handler = setup_bound_readonly_handler(MockTestBackendHandler::new()).await;
|
let ldap_handler = setup_bound_readonly_handler(MockTestBackendHandler::new()).await;
|
||||||
let request = make_group_search_request(
|
let request = make_group_search_request(
|
||||||
LdapFilter::Substring("member".to_owned(), LdapSubstringFilter::default()),
|
LdapFilter::Substring("member".to_owned(), LdapSubstringFilter::default()),
|
||||||
vec!["cn"],
|
vec!["cn"],
|
||||||
@@ -1040,7 +1040,7 @@ mod tests {
|
|||||||
.with(eq(Some(false.into())))
|
.with(eq(Some(false.into())))
|
||||||
.times(1)
|
.times(1)
|
||||||
.return_once(|_| Ok(vec![]));
|
.return_once(|_| Ok(vec![]));
|
||||||
let mut ldap_handler = setup_bound_readonly_handler(mock).await;
|
let ldap_handler = setup_bound_readonly_handler(mock).await;
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
ldap_handler.do_search_or_dse(&request).await,
|
ldap_handler.do_search_or_dse(&request).await,
|
||||||
Ok(vec![make_search_success()]),
|
Ok(vec![make_search_success()]),
|
||||||
@@ -1062,7 +1062,7 @@ mod tests {
|
|||||||
"Error getting groups".to_string(),
|
"Error getting groups".to_string(),
|
||||||
))
|
))
|
||||||
});
|
});
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
let request = make_group_search_request(
|
let request = make_group_search_request(
|
||||||
LdapFilter::Or(vec![LdapFilter::Not(Box::new(LdapFilter::Equality(
|
LdapFilter::Or(vec![LdapFilter::Not(Box::new(LdapFilter::Equality(
|
||||||
"displayname".to_string(),
|
"displayname".to_string(),
|
||||||
@@ -1081,7 +1081,7 @@ mod tests {
|
|||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_search_groups_filter_error() {
|
async fn test_search_groups_filter_error() {
|
||||||
let mut ldap_handler = setup_bound_admin_handler(MockTestBackendHandler::new()).await;
|
let ldap_handler = setup_bound_admin_handler(MockTestBackendHandler::new()).await;
|
||||||
let request = make_group_search_request(
|
let request = make_group_search_request(
|
||||||
LdapFilter::And(vec![LdapFilter::Approx(
|
LdapFilter::And(vec![LdapFilter::Approx(
|
||||||
"whatever".to_owned(),
|
"whatever".to_owned(),
|
||||||
@@ -1145,7 +1145,7 @@ mod tests {
|
|||||||
)
|
)
|
||||||
.times(1)
|
.times(1)
|
||||||
.return_once(|_, _| Ok(vec![]));
|
.return_once(|_, _| Ok(vec![]));
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
let request = make_user_search_request(
|
let request = make_user_search_request(
|
||||||
LdapFilter::And(vec![LdapFilter::Or(vec![
|
LdapFilter::And(vec![LdapFilter::Or(vec![
|
||||||
LdapFilter::Not(Box::new(LdapFilter::Equality(
|
LdapFilter::Not(Box::new(LdapFilter::Equality(
|
||||||
@@ -1194,7 +1194,7 @@ mod tests {
|
|||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_search_unsupported_substring_filter() {
|
async fn test_search_unsupported_substring_filter() {
|
||||||
let mut ldap_handler = setup_bound_admin_handler(MockTestBackendHandler::new()).await;
|
let ldap_handler = setup_bound_admin_handler(MockTestBackendHandler::new()).await;
|
||||||
let request = make_user_search_request(
|
let request = make_user_search_request(
|
||||||
LdapFilter::Substring(
|
LdapFilter::Substring(
|
||||||
"uuid".to_owned(),
|
"uuid".to_owned(),
|
||||||
@@ -1231,7 +1231,7 @@ mod tests {
|
|||||||
)
|
)
|
||||||
.times(2)
|
.times(2)
|
||||||
.returning(|_, _| Ok(vec![]));
|
.returning(|_, _| Ok(vec![]));
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
let request = make_user_search_request(
|
let request = make_user_search_request(
|
||||||
LdapFilter::Equality(
|
LdapFilter::Equality(
|
||||||
"memberOf".to_string(),
|
"memberOf".to_string(),
|
||||||
@@ -1259,7 +1259,7 @@ mod tests {
|
|||||||
.with(eq(Some(UserRequestFilter::from(false))), eq(false))
|
.with(eq(Some(UserRequestFilter::from(false))), eq(false))
|
||||||
.times(1)
|
.times(1)
|
||||||
.returning(|_, _| Ok(vec![]));
|
.returning(|_, _| Ok(vec![]));
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
let request = make_user_search_request(
|
let request = make_user_search_request(
|
||||||
LdapFilter::Equality(
|
LdapFilter::Equality(
|
||||||
"memberOf".to_string(),
|
"memberOf".to_string(),
|
||||||
@@ -1296,7 +1296,7 @@ mod tests {
|
|||||||
groups: None,
|
groups: None,
|
||||||
}])
|
}])
|
||||||
});
|
});
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
let request = make_user_search_request(
|
let request = make_user_search_request(
|
||||||
LdapFilter::And(vec![LdapFilter::Or(vec![LdapFilter::Not(Box::new(
|
LdapFilter::And(vec![LdapFilter::Or(vec![LdapFilter::Not(Box::new(
|
||||||
LdapFilter::Equality("displayname".to_string(), "bob".to_string()),
|
LdapFilter::Equality("displayname".to_string(), "bob".to_string()),
|
||||||
@@ -1339,7 +1339,7 @@ mod tests {
|
|||||||
groups: None,
|
groups: None,
|
||||||
}])
|
}])
|
||||||
});
|
});
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
let request = make_user_search_request(
|
let request = make_user_search_request(
|
||||||
LdapFilter::Equality("objectClass".to_owned(), "CUSTOMuserCLASS".to_owned()),
|
LdapFilter::Equality("objectClass".to_owned(), "CUSTOMuserCLASS".to_owned()),
|
||||||
vec!["objectclass"],
|
vec!["objectclass"],
|
||||||
@@ -1402,7 +1402,7 @@ mod tests {
|
|||||||
attributes: Vec::new(),
|
attributes: Vec::new(),
|
||||||
}])
|
}])
|
||||||
});
|
});
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
let request = make_search_request(
|
let request = make_search_request(
|
||||||
"dc=example,dc=com",
|
"dc=example,dc=com",
|
||||||
LdapFilter::And(vec![]),
|
LdapFilter::And(vec![]),
|
||||||
@@ -1486,7 +1486,7 @@ mod tests {
|
|||||||
attributes: Vec::new(),
|
attributes: Vec::new(),
|
||||||
}])
|
}])
|
||||||
});
|
});
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
|
|
||||||
// Test simple wildcard
|
// Test simple wildcard
|
||||||
let request =
|
let request =
|
||||||
@@ -1643,7 +1643,7 @@ mod tests {
|
|||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_search_wrong_base() {
|
async fn test_search_wrong_base() {
|
||||||
let mut ldap_handler = setup_bound_admin_handler(MockTestBackendHandler::new()).await;
|
let ldap_handler = setup_bound_admin_handler(MockTestBackendHandler::new()).await;
|
||||||
let request = make_search_request(
|
let request = make_search_request(
|
||||||
"ou=users,dc=example,dc=com",
|
"ou=users,dc=example,dc=com",
|
||||||
LdapFilter::And(vec![]),
|
LdapFilter::And(vec![]),
|
||||||
@@ -1657,7 +1657,7 @@ mod tests {
|
|||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_search_unsupported_filters() {
|
async fn test_search_unsupported_filters() {
|
||||||
let mut ldap_handler = setup_bound_admin_handler(MockTestBackendHandler::new()).await;
|
let ldap_handler = setup_bound_admin_handler(MockTestBackendHandler::new()).await;
|
||||||
let request = make_user_search_request(
|
let request = make_user_search_request(
|
||||||
LdapFilter::Approx("uid".to_owned(), "value".to_owned()),
|
LdapFilter::Approx("uid".to_owned(), "value".to_owned()),
|
||||||
vec!["objectClass"],
|
vec!["objectClass"],
|
||||||
@@ -1678,7 +1678,7 @@ mod tests {
|
|||||||
.with(eq(Some(true.into())), eq(false))
|
.with(eq(Some(true.into())), eq(false))
|
||||||
.times(1)
|
.times(1)
|
||||||
.return_once(|_, _| Ok(vec![]));
|
.return_once(|_, _| Ok(vec![]));
|
||||||
let mut ldap_handler = setup_bound_admin_handler(mock).await;
|
let ldap_handler = setup_bound_admin_handler(mock).await;
|
||||||
let request = make_user_search_request(
|
let request = make_user_search_request(
|
||||||
LdapFilter::Present("displayname".to_owned()),
|
LdapFilter::Present("displayname".to_owned()),
|
||||||
vec!["objectClass"],
|
vec!["objectClass"],
|
||||||
@@ -1691,7 +1691,7 @@ mod tests {
|
|||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_user_ou_search() {
|
async fn test_user_ou_search() {
|
||||||
let mut ldap_handler = setup_bound_readonly_handler(MockTestBackendHandler::new()).await;
|
let ldap_handler = setup_bound_readonly_handler(MockTestBackendHandler::new()).await;
|
||||||
let request = LdapSearchRequest {
|
let request = LdapSearchRequest {
|
||||||
base: "ou=people,dc=example,dc=com".to_owned(),
|
base: "ou=people,dc=example,dc=com".to_owned(),
|
||||||
scope: LdapSearchScope::Base,
|
scope: LdapSearchScope::Base,
|
||||||
@@ -1777,7 +1777,7 @@ mod tests {
|
|||||||
extra_group_object_classes: vec![LdapObjectClass::from("customGroupClass")],
|
extra_group_object_classes: vec![LdapObjectClass::from("customGroupClass")],
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
let mut ldap_handler = setup_bound_readonly_handler(mock).await;
|
let ldap_handler = setup_bound_readonly_handler(mock).await;
|
||||||
|
|
||||||
let request = make_search_request(
|
let request = make_search_request(
|
||||||
"dc=example,dc=com",
|
"dc=example,dc=com",
|
||||||
|
|||||||
Reference in New Issue
Block a user