if (afterc)
com_err(whoami, 0, "Couldn't add %s to group %s - unable to process group", user_name, group_name);
else
- com_err(whoami, 0, "Couldn't remove %s to group %s - unable to process group", user_name, group_name);
+ com_err(whoami, 0, "Couldn't remove %s from group %s - unable to process group", user_name, group_name);
return;
}
}
if (rc = member_remove(ldap_handle, dn_path, group_name,
group_ou, group_membership, ptr[LM_MEMBER],
pUserOu, moira_list_id))
- com_err(whoami, 0, "couldn't remove %s to group %s", user_name, group_name);
+ com_err(whoami, 0, "couldn't remove %s from group %s", user_name, group_name);
return;
}
}
/*process anything that gets here*/
- if ((rc = check_user(ldap_handle, dn_path, after[U_NAME],
- after_user_id)) == AD_NO_USER_FOUND)
+ if ((rc = check_user(ldap_handle, dn_path, before[U_NAME],
+ before_user_id)) == AD_NO_USER_FOUND)
{
if (rc = moira_connect())
{
}
name_v[0] = after_group_name;
- if (!strncmp(&sam_name[strlen(sam_name) - strlen("_zZxc")], "_zZx", strlen("_zZx")))
- {
- sprintf(sam_name, "%s_zZx%c", after_group_name, after_group_membership[0]);
- }
- else if (!strncmp(&sam_name[strlen(sam_name) - strlen("_group")], "_group", strlen("_group")))
+ if (!strncmp(&sam_name[strlen(sam_name) - strlen("_group")], "_group", strlen("_group")))
{
sprintf(sam_name, "%s_group", after_group_name);
}
sprintf(filter, "(sAMAccountName=%s)", sam_group_name);
if (strlen(call_args[5]) != 0)
- sprintf(filter, "(mitMoiraId=%s)", call_args[5]);
+ sprintf(filter, "(&(objectClass=group) (mitMoiraId=%s))", call_args[5]);
attr_array[0] = "objectSid";
attr_array[1] = NULL;
group_count = 0;
char *attr_array[3];
char **hp;
char path[256];
+ char temp[256];
char winPath[256];
char winProfile[256];
if (strlen(MoiraId) != 0)
{
- sprintf(filter, "(mitMoiraId=%s)", MoiraId);
+ sprintf(filter, "(&(objectClass=user)(mitMoiraId=%s))", MoiraId);
attr_array[0] = "cn";
attr_array[1] = NULL;
if ((rc = linklist_build(ldap_handle, dn_path, filter, attr_array,
return(rc);
}
}
- if (group_count == 0)
+ if (group_count != 1)
{
+ linklist_free(group_base);
+ group_base = NULL;
+ group_count = 0;
sprintf(filter, "(sAMAccountName=%s)", user_name);
attr_array[0] = "cn";
attr_array[1] = NULL;
- if ((rc = linklist_build(ldap_handle, dn_path, filter, attr_array,
+ sprintf(temp, "%s,%s", user_ou, dn_path);
+ if ((rc = linklist_build(ldap_handle, temp, filter, attr_array,
&group_base, &group_count)) != 0)
{
com_err(whoami, 0, "LDAP server couldn't process user %s : %s",
}
sprintf(filter, "(sAMAccountName=%s)", av[U_NAME]);
if (strlen(call_args[2]) != 0)
- sprintf(filter, "(mitMoiraId=%s)", call_args[2]);
+ sprintf(filter, "(&(objectClass=user)(mitMoiraId=%s))", call_args[2]);
attr_array[0] = "objectSid";
attr_array[1] = NULL;
group_count = 0;
if (strlen(MoiraId) != 0)
{
- sprintf(filter, "(mitMoiraId=%s)", MoiraId);
+ sprintf(filter, "(&(objectClass=user)(mitMoiraId=%s))", MoiraId);
attr_array[0] = "UserAccountControl";
attr_array[1] = NULL;
if ((rc = linklist_build(ldap_handle, dn_path, filter, attr_array,
return(rc);
}
}
- if (group_count == 0)
+ if (group_count != 1)
{
+ linklist_free(group_base);
+ group_count = 0;
+ group_base = NULL;
sprintf(filter, "(sAMAccountName=%s)", user_name);
attr_array[0] = "UserAccountControl";
attr_array[1] = NULL;
if (strlen(MoiraId) != 0)
{
- sprintf(filter, "(mitMoiraId=%s)", MoiraId);
+ sprintf(filter, "(&(objectClass=user)(mitMoiraId=%s))", MoiraId);
attr_array[0] = "name";
attr_array[1] = NULL;
if ((rc = linklist_build(ldap_handle, dn_path, filter, attr_array,
goto cleanup;
}
}
- if (group_count == 0)
+ if (group_count != 1)
{
+ linklist_free(group_base);
+ group_count = 0;
+ group_base = NULL;
sprintf(filter, "(sAMAccountName=%s)", user_name);
attr_array[0] = "name";
attr_array[1] = NULL;
MoiraId, ldap_err2string(rc));
return(rc);
}
- strcpy(before_desc, group_base->value);
- linklist_free(group_base);
- group_base = NULL;
- group_count = 0;
+ if (group_count != 0)
+ {
+ strcpy(before_desc, group_base->value);
+ linklist_free(group_base);
+ group_base = NULL;
+ group_count = 0;
+ }
change_to_lower_case(ad_distinguishedName);
strcpy(ou_both, group_ou_both);
change_to_lower_case(ou_both);
LK_ENTRY **linklist_base, int *linklist_count,
char *rFilter)
{
- char filter[128];
- char *attr_array[3];
+ char filter[128];
+ char *attr_array[3];
int rc;
(*linklist_base) = NULL;
(*linklist_count) = 0;
if (strlen(MoiraId) != 0)
{
- sprintf(filter, "(mitMoiraId=%s)", MoiraId);
+ sprintf(filter, "(&(objectClass=group)(mitMoiraId=%s))", MoiraId);
attr_array[0] = attribute;
attr_array[1] = NULL;
if ((rc = linklist_build(ldap_handle, dn_path, filter, attr_array,
return(0);
}
- linklist_free((*linklist_base));
- (*linklist_base) = NULL;
- (*linklist_count) = 0;
- sprintf(filter, "(sAMAccountName=%s_zZx%c)", group_name, group_membership[0]);
- attr_array[0] = attribute;
- attr_array[1] = NULL;
- if ((rc = linklist_build(ldap_handle, dn_path, filter, attr_array,
- linklist_base, linklist_count)) != 0)
- {
- com_err(whoami, 0, "LDAP server unable to get list info with MoiraId = %s: %s",
- MoiraId, ldap_err2string(rc));
- return(rc);
- }
- if ((*linklist_count) == 1)
- strcpy(rFilter, filter);
return(0);
}
int group_count;
int rc;
LK_ENTRY *group_base;
+ LK_ENTRY *gPtr;
group_count = 0;
group_base = NULL;
if (strlen(MoiraId) != 0)
{
- sprintf(filter, "(mitMoiraId=%s)", MoiraId);
+ sprintf(filter, "(&(objectClass=user)(mitMoiraId=%s))", MoiraId);
attr_array[0] = "sAMAccountName";
attr_array[1] = NULL;
if ((rc = linklist_build(ldap_handle, dn_path, filter, attr_array,
UserName, ldap_err2string(rc));
return(rc);
}
+ if (group_count > 1)
+ {
+ com_err(whoami, 0, "multiple users exist with MoiraId = %s",
+ MoiraId);
+ gPtr = group_base;
+ while (gPtr)
+ {
+ com_err(whoami, 0, "user %s exist with MoiraId = %s",
+ gPtr->value, MoiraId);
+ gPtr = gPtr->next;
+ }
+ }
}
- if (group_count == 0)
+ if (group_count != 1)
{
+ linklist_free(group_base);
+ group_count = 0;
+ group_base = NULL;
sprintf(filter, "(sAMAccountName=%s)", UserName);
attr_array[0] = "sAMAccountName";
attr_array[1] = NULL;