}
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;
}
}
}
+ }
mods[n] = NULL;
sprintf(temp, "%s,%s", dName, dn_path);
}
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;
group_count = 0;
}
}
- else
+ else
{
if (strlen(managedByDN) != 0)
{
ADD_ATTR("managedBy", managedBy_v, LDAP_MOD_REPLACE);
}
}
+ }
}
mods[n] = NULL;
if (n == 0)