when delete from GAB now delete from ldap.
authorDave West <davew@uncensored.citadel.org>
Sat, 6 Oct 2007 19:31:14 +0000 (19:31 +0000)
committerDave West <davew@uncensored.citadel.org>
Sat, 6 Oct 2007 19:31:14 +0000 (19:31 +0000)
Default the fields that ldap requires if not already set.

citadel/modules/ldap/serv_ldap.c
citadel/modules/vcard/serv_vcard.c

index 9008ac95efe19eb466af6b8c4a9c3bdb60a177f8..e8cae54e312b7f1efbc43ff5e581237bc3da1775 100644 (file)
@@ -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");
        
index 7528db3c78a5a6def73e967a0b64f9c1e7a784d8..497142c6caeabba964a3cfb8d0f52d68bcd166f3 100644 (file)
@@ -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);