]> andersk Git - moira.git/commitdiff
Use names, not acl_id's.
authorzacheiss <zacheiss>
Tue, 28 Aug 2001 14:32:48 +0000 (14:32 +0000)
committerzacheiss <zacheiss>
Tue, 28 Aug 2001 14:32:48 +0000 (14:32 +0000)
incremental/winad/winad.c

index cf1700601838b410c4fe4dc1daa7a62ad9299018..93ce3a049d77bbacd79ce758a7ee78b2c9034270 100755 (executable)
@@ -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)
This page took 0.05263 seconds and 5 git commands to generate.