From cfa74fcb5f6ba23f41a9ddaa76c3ebae6156da86 Mon Sep 17 00:00:00 2001 From: Michal Zidek Date: Wed, 10 Sep 2014 12:41:16 +0200 Subject: Add alternative objectClass to group attribute maps In IPA we sometimes need to use posixGroup and sometimes groupOfNames objectclass to query the groups. This patch adds the possibility to specify alternative objectclass in group maps. By default it is only set for IPA. Fixes: https://fedorahosted.org/sssd/ticket/2436 Reviewed-by: Jakub Hrozek (cherry picked from commit 6f91c61426c8cfbfec52d5e77ae4650007694e69) --- src/providers/ad/ad_opts.h | 1 + src/providers/ipa/ipa_opts.h | 3 ++- src/providers/ldap/ldap_opts.h | 3 +++ src/providers/ldap/sdap.h | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/providers/ad/ad_opts.h b/src/providers/ad/ad_opts.h index 31703fd7f..7b062f033 100644 --- a/src/providers/ad/ad_opts.h +++ b/src/providers/ad/ad_opts.h @@ -203,6 +203,7 @@ struct sdap_attr_map ad_2008r2_user_map[] = { struct sdap_attr_map ad_2008r2_group_map[] = { { "ldap_group_object_class", "group", SYSDB_GROUP_CLASS, NULL }, + { "ldap_group_object_class_alt", NULL, SYSDB_GROUP_CLASS, NULL }, { "ldap_group_name", "name", SYSDB_NAME, NULL }, { "ldap_group_pwd", NULL, SYSDB_PWD, NULL }, { "ldap_group_gid_number", "gidNumber", SYSDB_GIDNUM, NULL }, diff --git a/src/providers/ipa/ipa_opts.h b/src/providers/ipa/ipa_opts.h index 5bd7e6dd4..5c82134fd 100644 --- a/src/providers/ipa/ipa_opts.h +++ b/src/providers/ipa/ipa_opts.h @@ -202,7 +202,8 @@ struct sdap_attr_map ipa_user_map[] = { }; struct sdap_attr_map ipa_group_map[] = { - { "ldap_group_object_class", "groupofnames", SYSDB_GROUP_CLASS, NULL }, + { "ldap_group_object_class", "groupOfNames", SYSDB_GROUP_CLASS, NULL }, + { "ldap_group_object_class_alt", "posixGroup", SYSDB_GROUP_CLASS, NULL }, { "ldap_group_name", "cn", SYSDB_NAME, NULL }, { "ldap_group_pwd", "userPassword", SYSDB_PWD, NULL }, { "ldap_group_gid_number", "gidNumber", SYSDB_GIDNUM, NULL }, diff --git a/src/providers/ldap/ldap_opts.h b/src/providers/ldap/ldap_opts.h index cc40ad1cb..82d46e75d 100644 --- a/src/providers/ldap/ldap_opts.h +++ b/src/providers/ldap/ldap_opts.h @@ -181,6 +181,7 @@ struct sdap_attr_map rfc2307_user_map[] = { struct sdap_attr_map rfc2307_group_map[] = { { "ldap_group_object_class", "posixGroup", SYSDB_GROUP_CLASS, NULL }, + { "ldap_group_object_class_alt", NULL, SYSDB_GROUP_CLASS, NULL }, { "ldap_group_name", "cn", SYSDB_NAME, NULL }, { "ldap_group_pwd", "userPassword", SYSDB_PWD, NULL }, { "ldap_group_gid_number", "gidNumber", SYSDB_GIDNUM, NULL }, @@ -232,6 +233,7 @@ struct sdap_attr_map rfc2307bis_user_map[] = { struct sdap_attr_map rfc2307bis_group_map[] = { { "ldap_group_object_class", "posixGroup", SYSDB_GROUP_CLASS, NULL }, + { "ldap_group_object_class_alt", NULL, SYSDB_GROUP_CLASS, NULL }, { "ldap_group_name", "cn", SYSDB_NAME, NULL }, { "ldap_group_pwd", "userPassword", SYSDB_PWD, NULL }, { "ldap_group_gid_number", "gidNumber", SYSDB_GIDNUM, NULL }, @@ -283,6 +285,7 @@ struct sdap_attr_map gen_ad2008r2_user_map[] = { struct sdap_attr_map gen_ad2008r2_group_map[] = { { "ldap_group_object_class", "group", SYSDB_GROUP_CLASS, NULL }, + { "ldap_group_object_class_alt", NULL, SYSDB_GROUP_CLASS, NULL }, { "ldap_group_name", "name", SYSDB_NAME, NULL }, { "ldap_group_pwd", NULL, SYSDB_PWD, NULL }, { "ldap_group_gid_number", "gidNumber", SYSDB_GIDNUM, NULL }, diff --git a/src/providers/ldap/sdap.h b/src/providers/ldap/sdap.h index 145ff6df1..c4514ae5e 100644 --- a/src/providers/ldap/sdap.h +++ b/src/providers/ldap/sdap.h @@ -290,6 +290,7 @@ enum sdap_user_attrs { * Functions depend on this */ enum sdap_group_attrs { SDAP_OC_GROUP = 0, + SDAP_OC_GROUP_ALT, SDAP_AT_GROUP_NAME, SDAP_AT_GROUP_PWD, SDAP_AT_GROUP_GID, -- cgit