From: Dave West Date: Sat, 6 Oct 2007 19:31:14 +0000 (+0000) Subject: when delete from GAB now delete from ldap. X-Git-Tag: v7.86~2999 X-Git-Url: https://code.citadel.org/?a=commitdiff_plain;h=c12c9d112de5a2b6b12db69337683b0cd0a0a06b;p=citadel.git when delete from GAB now delete from ldap. Default the fields that ldap requires if not already set. --- diff --git a/citadel/modules/ldap/serv_ldap.c b/citadel/modules/ldap/serv_ldap.c index 9008ac95e..e8cae54e3 100644 --- a/citadel/modules/ldap/serv_ldap.c +++ b/citadel/modules/ldap/serv_ldap.c @@ -414,7 +414,7 @@ int CtdlDeleteFromLdap(char *cn, char *ou, void **object) if (ou == NULL) return -1; if (cn == NULL) return -1; - sprintf(this_dn, "cn=%s,ou=%s,%s", cn, ou, config.c_ldap_base_dn); + sprintf(this_dn, "euid=%s,ou=%s,%s", cn, ou, config.c_ldap_base_dn); lprintf(CTDL_DEBUG, "LDAP: Calling ldap_delete_s()\n"); diff --git a/citadel/modules/vcard/serv_vcard.c b/citadel/modules/vcard/serv_vcard.c index 7528db3c7..497142c6c 100644 --- a/citadel/modules/vcard/serv_vcard.c +++ b/citadel/modules/vcard/serv_vcard.c @@ -175,7 +175,7 @@ void ctdl_vcard_to_directory(struct CtdlMessage *msg, int op) { /* Are we just deleting? If so, it's simple... */ if (op == V2L_DELETE) { - (void) CtdlDoDirectoryServiceFunc (msg->cm_fields['A'], msg->cm_fields['N'], NULL, "ldap", DIRECTORY_USER_DEL); + (void) CtdlDoDirectoryServiceFunc (msg->cm_fields['E'], msg->cm_fields['N'], NULL, "ldap", DIRECTORY_USER_DEL); return; } @@ -236,6 +236,12 @@ void ctdl_vcard_to_directory(struct CtdlMessage *msg, int op) { extract_token(state, v->prop[i].value, 4, ';', sizeof state); extract_token(zipcode, v->prop[i].value, 5, ';', sizeof zipcode); + // ldap requires these fields to be something + if (IsEmptyStr(street)) strcpy(street, "_"); + if (IsEmptyStr(zipcode)) strcpy(zipcode, "_"); + if (IsEmptyStr(city)) strcpy(city, "_"); + if (IsEmptyStr(state)) strcpy(state, "_"); + (void) CtdlDoDirectoryServiceFunc("street", street, &objectlist, "ldap", DIRECTORY_ATTRIB_ADD); (void) CtdlDoDirectoryServiceFunc("l", city, &objectlist, "ldap", DIRECTORY_ATTRIB_ADD); (void) CtdlDoDirectoryServiceFunc("st", state, &objectlist, "ldap", DIRECTORY_ATTRIB_ADD);