From 646261ebf75b9e1551f616239fb902ebd57b6a21 Mon Sep 17 00:00:00 2001 From: William Brown Date: Sun, 1 Dec 2019 15:16:56 +1000 Subject: [PATCH] Resolve domain_name overwrite on startup issue --- kanidmd/src/lib/constants.rs | 3 +-- kanidmd/src/lib/plugins/domain.rs | 17 +++++++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/kanidmd/src/lib/constants.rs b/kanidmd/src/lib/constants.rs index 8d7c8dcb9..80865d8f7 100644 --- a/kanidmd/src/lib/constants.rs +++ b/kanidmd/src/lib/constants.rs @@ -456,8 +456,7 @@ pub static JSON_DOMAIN_INFO_V1: &'static str = r#"{ "class": ["object", "domain_info", "system"], "name": ["domain_local"], "uuid": ["00000000-0000-0000-0000-ffffff000025"], - "description": ["This local domain's info and metadata object."], - "domain_name": ["example.com"] + "description": ["This local domain's info and metadata object."] } }"#; diff --git a/kanidmd/src/lib/plugins/domain.rs b/kanidmd/src/lib/plugins/domain.rs index 04649f197..f41bd28f6 100644 --- a/kanidmd/src/lib/plugins/domain.rs +++ b/kanidmd/src/lib/plugins/domain.rs @@ -34,12 +34,17 @@ impl Plugin for Domain { ) -> Result<(), OperationError> { audit_log!(au, "Entering base pre_create_transform"); cand.iter_mut().for_each(|e| { - if e.attribute_value_pres("class", &PVCLASS_DOMAIN_INFO) - && !e.attribute_pres("domain_uuid") - { - let u = Value::new_uuid(Uuid::new_v4()); - e.set_avas("domain_uuid", vec![u]); - audit_log!(au, "plugin_domain: Applying uuid transform"); + if e.attribute_value_pres("class", &PVCLASS_DOMAIN_INFO) { + if !e.attribute_pres("domain_uuid") { + let u = Value::new_uuid(Uuid::new_v4()); + e.set_avas("domain_uuid", vec![u]); + audit_log!(au, "plugin_domain: Applying uuid transform"); + } + if !e.attribute_pres("domain_name") { + let n = Value::new_iutf8s("example.com"); + e.set_avas("domain_name", vec![n]); + audit_log!(au, "plugin_domain: Applying domain_name transform"); + } audit_log!(au, "{:?}", e); } });