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![]));
|
||||
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 request = LdapCompareRequest {
|
||||
dn: dn.to_string(),
|
||||
@@ -128,7 +128,7 @@ mod tests {
|
||||
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 request = LdapCompareRequest {
|
||||
dn: dn.to_string(),
|
||||
@@ -155,7 +155,7 @@ mod tests {
|
||||
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 request = LdapCompareRequest {
|
||||
dn: dn.to_string(),
|
||||
@@ -189,7 +189,7 @@ mod tests {
|
||||
}])
|
||||
});
|
||||
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 request = LdapCompareRequest {
|
||||
dn: dn.to_string(),
|
||||
@@ -222,7 +222,7 @@ mod tests {
|
||||
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 request = LdapCompareRequest {
|
||||
dn: dn.to_string(),
|
||||
|
||||
@@ -139,10 +139,7 @@ impl<Backend: BackendHandler + LoginHandler + OpaqueHandler> LdapHandler<Backend
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn do_search_or_dse(
|
||||
&mut self,
|
||||
request: &LdapSearchRequest,
|
||||
) -> LdapResult<Vec<LdapOp>> {
|
||||
pub async fn do_search_or_dse(&self, request: &LdapSearchRequest) -> LdapResult<Vec<LdapOp>> {
|
||||
if is_root_dse_request(request) {
|
||||
debug!("rootDSE request");
|
||||
return Ok(vec![
|
||||
@@ -192,7 +189,7 @@ impl<Backend: BackendHandler + LoginHandler + OpaqueHandler> LdapHandler<Backend
|
||||
}
|
||||
|
||||
#[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() {
|
||||
OID_PASSWORD_MODIFY => match LdapPasswordModifyRequest::try_from(request) {
|
||||
Ok(password_request) => {
|
||||
@@ -237,7 +234,7 @@ impl<Backend: BackendHandler + LoginHandler + OpaqueHandler> LdapHandler<Backend
|
||||
}
|
||||
|
||||
#[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() {
|
||||
Credentials::Bound(cred) => cred,
|
||||
Credentials::Unbound(err) => return err,
|
||||
@@ -283,7 +280,7 @@ impl<Backend: BackendHandler + LoginHandler + OpaqueHandler> LdapHandler<Backend
|
||||
}
|
||||
|
||||
#[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>(
|
||||
&self.ldap_info.base_dn_str,
|
||||
LdapFilter::Equality("dn".to_string(), request.dn.to_string()),
|
||||
|
||||
@@ -210,7 +210,7 @@ mod tests {
|
||||
let mut mock = MockTestBackendHandler::new();
|
||||
setup_target_user_groups(&mut mock, "bob", Vec::new());
|
||||
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");
|
||||
assert_eq!(
|
||||
ldap_handler.do_modify_request(&request).await,
|
||||
@@ -223,7 +223,7 @@ mod tests {
|
||||
let mut mock = MockTestBackendHandler::new();
|
||||
setup_target_user_groups(&mut mock, "test", Vec::new());
|
||||
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");
|
||||
assert_eq!(
|
||||
ldap_handler.do_modify_request(&request).await,
|
||||
@@ -236,7 +236,7 @@ mod tests {
|
||||
let mut mock = MockTestBackendHandler::new();
|
||||
setup_target_user_groups(&mut mock, "bob", Vec::new());
|
||||
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");
|
||||
assert_eq!(
|
||||
ldap_handler.do_modify_request(&request).await,
|
||||
@@ -248,7 +248,7 @@ mod tests {
|
||||
async fn test_modify_password_of_admin_as_password_manager() {
|
||||
let mut mock = MockTestBackendHandler::new();
|
||||
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");
|
||||
assert_eq!(
|
||||
ldap_handler.do_modify_request(&request).await,
|
||||
@@ -261,7 +261,7 @@ mod tests {
|
||||
|
||||
#[tokio::test]
|
||||
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;
|
||||
let request = make_password_modify_request("bob");
|
||||
assert_eq!(
|
||||
@@ -278,7 +278,7 @@ mod tests {
|
||||
let mut mock = MockTestBackendHandler::new();
|
||||
setup_target_user_groups(&mut mock, "test", vec!["lldap_admin"]);
|
||||
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");
|
||||
assert_eq!(
|
||||
ldap_handler.do_modify_request(&request).await,
|
||||
@@ -290,7 +290,7 @@ mod tests {
|
||||
async fn test_modify_password_invalid_number_of_values() {
|
||||
let mut mock = MockTestBackendHandler::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 target_user = "bob";
|
||||
LdapModifyRequest {
|
||||
|
||||
@@ -342,7 +342,7 @@ mod tests {
|
||||
|
||||
#[tokio::test]
|
||||
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 {
|
||||
base: "".to_string(),
|
||||
scope: LdapSearchScope::Base,
|
||||
@@ -383,7 +383,7 @@ mod tests {
|
||||
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 =
|
||||
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))
|
||||
.times(1)
|
||||
.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 =
|
||||
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>(
|
||||
LdapFilter::And(vec![]),
|
||||
@@ -471,7 +471,7 @@ mod tests {
|
||||
)
|
||||
.times(1)
|
||||
.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 {
|
||||
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(
|
||||
LdapFilter::And(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(
|
||||
LdapFilter::And(vec![]),
|
||||
vec![
|
||||
@@ -773,7 +773,7 @@ mod tests {
|
||||
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(
|
||||
LdapFilter::Equality("groupid".to_string(), "1".to_string()),
|
||||
vec!["dn"],
|
||||
@@ -823,7 +823,7 @@ mod tests {
|
||||
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(
|
||||
LdapFilter::And(vec![
|
||||
LdapFilter::Equality("cN".to_string(), "Group_1".to_string()),
|
||||
@@ -894,7 +894,7 @@ mod tests {
|
||||
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(
|
||||
LdapFilter::Or(vec![LdapFilter::Not(Box::new(LdapFilter::Equality(
|
||||
"displayname".to_string(),
|
||||
@@ -965,7 +965,7 @@ mod tests {
|
||||
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(
|
||||
LdapFilter::Equality("Attr".to_string(), "TEST".to_string()),
|
||||
vec!["cn"],
|
||||
@@ -995,7 +995,7 @@ mod tests {
|
||||
]))))
|
||||
.times(1)
|
||||
.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 {
|
||||
base: "uid=rockstars,ou=groups,Dc=example,dc=com".to_string(),
|
||||
@@ -1015,7 +1015,7 @@ mod tests {
|
||||
|
||||
#[tokio::test]
|
||||
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(
|
||||
LdapFilter::Substring("member".to_owned(), LdapSubstringFilter::default()),
|
||||
vec!["cn"],
|
||||
@@ -1040,7 +1040,7 @@ mod tests {
|
||||
.with(eq(Some(false.into())))
|
||||
.times(1)
|
||||
.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!(
|
||||
ldap_handler.do_search_or_dse(&request).await,
|
||||
Ok(vec![make_search_success()]),
|
||||
@@ -1062,7 +1062,7 @@ mod tests {
|
||||
"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(
|
||||
LdapFilter::Or(vec![LdapFilter::Not(Box::new(LdapFilter::Equality(
|
||||
"displayname".to_string(),
|
||||
@@ -1081,7 +1081,7 @@ mod tests {
|
||||
|
||||
#[tokio::test]
|
||||
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(
|
||||
LdapFilter::And(vec![LdapFilter::Approx(
|
||||
"whatever".to_owned(),
|
||||
@@ -1145,7 +1145,7 @@ mod tests {
|
||||
)
|
||||
.times(1)
|
||||
.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(
|
||||
LdapFilter::And(vec![LdapFilter::Or(vec![
|
||||
LdapFilter::Not(Box::new(LdapFilter::Equality(
|
||||
@@ -1194,7 +1194,7 @@ mod tests {
|
||||
|
||||
#[tokio::test]
|
||||
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(
|
||||
LdapFilter::Substring(
|
||||
"uuid".to_owned(),
|
||||
@@ -1231,7 +1231,7 @@ mod tests {
|
||||
)
|
||||
.times(2)
|
||||
.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(
|
||||
LdapFilter::Equality(
|
||||
"memberOf".to_string(),
|
||||
@@ -1259,7 +1259,7 @@ mod tests {
|
||||
.with(eq(Some(UserRequestFilter::from(false))), eq(false))
|
||||
.times(1)
|
||||
.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(
|
||||
LdapFilter::Equality(
|
||||
"memberOf".to_string(),
|
||||
@@ -1296,7 +1296,7 @@ mod tests {
|
||||
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(
|
||||
LdapFilter::And(vec![LdapFilter::Or(vec![LdapFilter::Not(Box::new(
|
||||
LdapFilter::Equality("displayname".to_string(), "bob".to_string()),
|
||||
@@ -1339,7 +1339,7 @@ mod tests {
|
||||
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(
|
||||
LdapFilter::Equality("objectClass".to_owned(), "CUSTOMuserCLASS".to_owned()),
|
||||
vec!["objectclass"],
|
||||
@@ -1402,7 +1402,7 @@ mod tests {
|
||||
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(
|
||||
"dc=example,dc=com",
|
||||
LdapFilter::And(vec![]),
|
||||
@@ -1486,7 +1486,7 @@ mod tests {
|
||||
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
|
||||
let request =
|
||||
@@ -1643,7 +1643,7 @@ mod tests {
|
||||
|
||||
#[tokio::test]
|
||||
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(
|
||||
"ou=users,dc=example,dc=com",
|
||||
LdapFilter::And(vec![]),
|
||||
@@ -1657,7 +1657,7 @@ mod tests {
|
||||
|
||||
#[tokio::test]
|
||||
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(
|
||||
LdapFilter::Approx("uid".to_owned(), "value".to_owned()),
|
||||
vec!["objectClass"],
|
||||
@@ -1678,7 +1678,7 @@ mod tests {
|
||||
.with(eq(Some(true.into())), eq(false))
|
||||
.times(1)
|
||||
.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(
|
||||
LdapFilter::Present("displayname".to_owned()),
|
||||
vec!["objectClass"],
|
||||
@@ -1691,7 +1691,7 @@ mod tests {
|
||||
|
||||
#[tokio::test]
|
||||
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 {
|
||||
base: "ou=people,dc=example,dc=com".to_owned(),
|
||||
scope: LdapSearchScope::Base,
|
||||
@@ -1777,7 +1777,7 @@ mod tests {
|
||||
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(
|
||||
"dc=example,dc=com",
|
||||
|
||||
Reference in New Issue
Block a user