From: zacheiss Date: Tue, 28 Aug 2001 14:32:48 +0000 (+0000) Subject: Use names, not acl_id's. X-Git-Url: http://andersk.mit.edu/gitweb/moira.git/commitdiff_plain/0eae7c9bac9050c300fd01298df2f87397252d8f Use names, not acl_id's. --- diff --git a/incremental/winad/winad.c b/incremental/winad/winad.c index cf170060..93ce3a04 100755 --- a/incremental/winad/winad.c +++ b/incremental/winad/winad.c @@ -3919,15 +3919,26 @@ int container_create(LDAP *ldap_handle, char *dn_path, int count, char **av) } if ((strlen(av[CONTAINER_TYPE]) != 0) && (strlen(av[CONTAINER_ID]) != 0)) { - if (!strcasecmp(av[CONTAINER_TYPE], "USER")) + if (!strcasecmp(av[CONTAINER_TYPE], "KERBEROS")) + { + if (!contact_create(ldap_handle, dn_path, av[CONTAINER_ID], kerberos_ou)) + { + sprintf(managedByDN, "CN=%s,%s,%s", av[CONTAINER_ID], kerberos_ou,dn_path); + managedBy_v[0] = managedByDN; + ADD_ATTR("managedBy", managedBy_v, LDAP_MOD_ADD); + } + } + else + { + if (!strcasecmp(av[CONTAINER_TYPE], "USER")) { - sprintf(filter, "(&(objectClass=user)(mitMoiraId=%s))", av[CONTAINER_ID]); + sprintf(filter, "(&(cn=%s)(&(objectCategory=person)(objectClass=user)))", av[CONTAINER_ID]); } - if (!strcasecmp(av[CONTAINER_TYPE], "LIST")) + if (!strcasecmp(av[CONTAINER_TYPE], "LIST")) { - sprintf(filter, "(&(objectClass=group)(mitMoiraId=%s))", av[CONTAINER_ID]); + sprintf(filter, "(&(objectClass=group)(cn=%s))", av[CONTAINER_ID]); } - if (strlen(filter) != 0) + if (strlen(filter) != 0) { attr_array[0] = "distinguishedName"; attr_array[1] = NULL; @@ -3948,6 +3959,7 @@ int container_create(LDAP *ldap_handle, char *dn_path, int count, char **av) } } } + } mods[n] = NULL; sprintf(temp, "%s,%s", dName, dn_path); @@ -4135,15 +4147,35 @@ int container_adupdate(LDAP *ldap_handle, char *dn_path, char *dName, } if ((strlen(av[CONTAINER_TYPE]) != 0) && (strlen(av[CONTAINER_ID]) != 0)) { - if (!strcasecmp(av[CONTAINER_TYPE], "USER")) + if (!strcasecmp(av[CONTAINER_TYPE], "KERBEROS")) + { + if (!contact_create(ldap_handle, dn_path, av[CONTAINER_ID], kerberos_ou)) + { + sprintf(managedByDN, "CN=%s,%s,%s", av[CONTAINER_ID], kerberos_ou, dn_path); + managedBy_v[0] = managedByDN; + ADD_ATTR("managedBy", managedBy_v, LDAP_MOD_REPLACE); + } + else + { + if (strlen(managedByDN) != 0) + { + managedBy_v[0] = NULL; + ADD_ATTR("managedBy", managedBy_v, LDAP_MOD_REPLACE); + } + } + } + else + { + memset(filter, '\0', sizeof(filter)); + if (!strcasecmp(av[CONTAINER_TYPE], "USER")) { - sprintf(filter, "(&(objectClass=user)(mitMoiraId=%s))", av[CONTAINER_ID]); + sprintf(filter, "(&(cn=%s)(&(objectCategory=person)(objectClass=user)))", av[CONTAINER_ID]); } - if (!strcasecmp(av[CONTAINER_TYPE], "LIST")) + if (!strcasecmp(av[CONTAINER_TYPE], "LIST")) { - sprintf(filter, "(&(objectClass=group)(mitMoiraId=%s))", av[CONTAINER_ID]); + sprintf(filter, "(&(objectClass=group)(cn=%s))", av[CONTAINER_ID]); } - if (strlen(filter) != 0) + if (strlen(filter) != 0) { attr_array[0] = "distinguishedName"; attr_array[1] = NULL; @@ -4171,7 +4203,7 @@ int container_adupdate(LDAP *ldap_handle, char *dn_path, char *dName, group_count = 0; } } - else + else { if (strlen(managedByDN) != 0) { @@ -4179,6 +4211,7 @@ int container_adupdate(LDAP *ldap_handle, char *dn_path, char *dName, ADD_ATTR("managedBy", managedBy_v, LDAP_MOD_REPLACE); } } + } } mods[n] = NULL; if (n == 0)