summaryrefslogtreecommitdiffstats
path: root/server/providers/ldap/ldap_common.c
diff options
context:
space:
mode:
authorSimo Sorce <ssorce@redhat.com>2009-10-24 12:27:42 -0400
committerSimo Sorce <ssorce@redhat.com>2009-10-27 10:12:57 -0400
commitee633d9fe3b48a88387edab7978bb16422525d21 (patch)
tree78c9771fe2b5f6dbc1191e26d814531efae52fc9 /server/providers/ldap/ldap_common.c
parenta982b0724e27f4059c2a150e591337d9511cb7be (diff)
downloadsssd-ee633d9fe3b48a88387edab7978bb16422525d21.tar.gz
sssd-ee633d9fe3b48a88387edab7978bb16422525d21.tar.xz
sssd-ee633d9fe3b48a88387edab7978bb16422525d21.zip
Add proper support for IPA/AD schemas
Nested groups weren't properly handled. Add 2 pass strategy to update groups memberships Stuff work as expected when enumeration is enabled now.
Diffstat (limited to 'server/providers/ldap/ldap_common.c')
-rw-r--r--server/providers/ldap/ldap_common.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/server/providers/ldap/ldap_common.c b/server/providers/ldap/ldap_common.c
index b03e58fcc..bb836c1ee 100644
--- a/server/providers/ldap/ldap_common.c
+++ b/server/providers/ldap/ldap_common.c
@@ -162,6 +162,16 @@ int ldap_get_options(TALLOC_CTX *memctx,
opts->schema_type = SDAP_SCHEMA_RFC2307BIS;
default_user_map = rfc2307bis_user_map;
default_group_map = rfc2307bis_group_map;
+ } else
+ if (strcasecmp(schema, "IPA") == 0) {
+ opts->schema_type = SDAP_SCHEMA_IPA_V1;
+ default_user_map = rfc2307bis_user_map;
+ default_group_map = rfc2307bis_group_map;
+ } else
+ if (strcasecmp(schema, "AD") == 0) {
+ opts->schema_type = SDAP_SCHEMA_AD;
+ default_user_map = rfc2307bis_user_map;
+ default_group_map = rfc2307bis_group_map;
} else {
DEBUG(0, ("Unrecognized schema type: %s\n", schema));
ret = EINVAL;