From 351b672426dfba61b7994e59350f4ee3c6d49bc0 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sat, 19 Feb 2011 17:44:48 +0100 Subject: s3: Make QueryDispInfo and QueryInfo match for guest --- source3/passdb/pdb_ads.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) (limited to 'source3/passdb') diff --git a/source3/passdb/pdb_ads.c b/source3/passdb/pdb_ads.c index bcb803b396..0dc39fd308 100644 --- a/source3/passdb/pdb_ads.c +++ b/source3/passdb/pdb_ads.c @@ -1956,6 +1956,7 @@ static bool pdb_ads_search_filter(struct pdb_methods *m, for (i=0; ientries[sstate->num_entries]; @@ -1966,18 +1967,30 @@ static bool pdb_ads_search_filter(struct pdb_methods *m, } sid_peek_rid(&sid, &e->rid); e->acct_flags = ACB_NORMAL; - e->account_name = tldap_talloc_single_attribute( - users[i], "samAccountName", sstate->entries); + + if (e->rid == DOMAIN_RID_GUEST) { + /* + * Guest is specially crafted in s3. Make + * QueryDisplayInfo match QueryUserInfo + */ + e->account_name = lp_guestaccount(); + e->fullname = lp_guestaccount(); + e->description = ""; + e->acct_flags = ACB_NORMAL; + } else { + e->account_name = tldap_talloc_single_attribute( + users[i], "samAccountName", sstate->entries); + e->fullname = tldap_talloc_single_attribute( + users[i], "displayName", sstate->entries); + e->description = tldap_talloc_single_attribute( + users[i], "description", sstate->entries); + } if (e->account_name == NULL) { return false; } - e->fullname = tldap_talloc_single_attribute( - users[i], "displayName", sstate->entries); if (e->fullname == NULL) { e->fullname = ""; } - e->description = tldap_talloc_single_attribute( - users[i], "description", sstate->entries); if (e->description == NULL) { e->description = ""; } -- cgit