mirror of
https://github.com/kanidm/kanidm.git
synced 2025-05-25 02:13:55 +02:00
ldap-sync: allow to use attrs more than once (#2676)
This commit is contained in:
parent
acf05ca924
commit
e5702909d0
4
Cargo.lock
generated
4
Cargo.lock
generated
|
@ -3450,9 +3450,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "ldap3_client"
|
||||
version = "0.4.3"
|
||||
version = "0.4.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4f294d8b0c3a0906caca55d2004f1192e174b895afa3f0f177ead05f314544d2"
|
||||
checksum = "854e3458060e43858cb5220afc6a04db414be3de41d98dc29b7f628bdb7fc02d"
|
||||
dependencies = [
|
||||
"base64 0.21.7",
|
||||
"base64urlsafedata",
|
||||
|
|
|
@ -149,7 +149,7 @@ js-sys = "^0.3.69"
|
|||
kanidmd_web_ui_shared = { path = "./server/web_ui/shared" }
|
||||
# REMOVE this
|
||||
lazy_static = "^1.4.0"
|
||||
ldap3_client = "^0.4.3"
|
||||
ldap3_client = "^0.4.4"
|
||||
ldap3_proto = { version = "^0.4.3", features = ["serde"] }
|
||||
|
||||
libc = "^0.2.153"
|
||||
|
|
|
@ -513,29 +513,31 @@ fn ldap_to_scim_entry(
|
|||
name
|
||||
} else {
|
||||
entry
|
||||
.remove_ava_single(&sync_config.person_attr_user_name)
|
||||
.get_ava_single(&sync_config.person_attr_user_name)
|
||||
.ok_or_else(|| {
|
||||
error!(
|
||||
"Missing required attribute {} (person_attr_user_name)",
|
||||
sync_config.person_attr_user_name
|
||||
);
|
||||
})?
|
||||
.to_owned()
|
||||
};
|
||||
|
||||
let display_name = entry
|
||||
.remove_ava_single(&sync_config.person_attr_display_name)
|
||||
.get_ava_single(&sync_config.person_attr_display_name)
|
||||
.ok_or_else(|| {
|
||||
error!(
|
||||
"Missing required attribute {} (person_attr_display_name)",
|
||||
sync_config.person_attr_display_name
|
||||
);
|
||||
})?;
|
||||
})?
|
||||
.to_owned();
|
||||
|
||||
let gidnumber = if let Some(number) = entry_config.map_gidnumber {
|
||||
Some(number)
|
||||
} else {
|
||||
entry
|
||||
.remove_ava_single(&sync_config.person_attr_gidnumber)
|
||||
.get_ava_single(&sync_config.person_attr_gidnumber)
|
||||
.map(|gid| {
|
||||
u32::from_str(&gid).map_err(|_| {
|
||||
error!(
|
||||
|
@ -547,7 +549,9 @@ fn ldap_to_scim_entry(
|
|||
.transpose()?
|
||||
};
|
||||
|
||||
let password_import = entry.remove_ava_single(&sync_config.person_attr_password);
|
||||
let password_import = entry
|
||||
.get_ava_single(&sync_config.person_attr_password)
|
||||
.map(str::to_string);
|
||||
|
||||
let password_import = if let Some(pw_prefix) = sync_config.person_password_prefix.as_ref() {
|
||||
password_import.map(|s| format!("{}{}", pw_prefix, s))
|
||||
|
@ -610,7 +614,9 @@ fn ldap_to_scim_entry(
|
|||
};
|
||||
let account_valid_from = None;
|
||||
|
||||
let login_shell = entry.remove_ava_single(&sync_config.person_attr_login_shell);
|
||||
let login_shell = entry
|
||||
.get_ava_single(&sync_config.person_attr_login_shell)
|
||||
.map(str::to_string);
|
||||
let external_id = Some(entry.dn);
|
||||
|
||||
Ok(Some(
|
||||
|
@ -641,18 +647,21 @@ fn ldap_to_scim_entry(
|
|||
let id = entry_uuid;
|
||||
|
||||
let name = entry
|
||||
.remove_ava_single(&sync_config.group_attr_name)
|
||||
.get_ava_single(&sync_config.group_attr_name)
|
||||
.ok_or_else(|| {
|
||||
error!(
|
||||
"Missing required attribute {} (group_attr_name)",
|
||||
sync_config.group_attr_name
|
||||
);
|
||||
})?;
|
||||
})?
|
||||
.to_owned();
|
||||
|
||||
let description = entry.remove_ava_single(&sync_config.group_attr_description);
|
||||
let description = entry
|
||||
.get_ava_single(&sync_config.group_attr_description)
|
||||
.map(str::to_string);
|
||||
|
||||
let gidnumber = entry
|
||||
.remove_ava_single(&sync_config.group_attr_gidnumber)
|
||||
.get_ava_single(&sync_config.group_attr_gidnumber)
|
||||
.map(|gid| {
|
||||
u32::from_str(&gid).map_err(|_| {
|
||||
error!(
|
||||
|
|
Loading…
Reference in a new issue