diff options
author | Volker Lendecke <vl@samba.org> | 2011-02-19 17:44:48 +0100 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2011-02-20 10:23:29 +0100 |
commit | 351b672426dfba61b7994e59350f4ee3c6d49bc0 (patch) | |
tree | af2707ef9359444adc1fc75e5f6e8870120ce03f | |
parent | 3e4da946699f77abd40c9eb03c2cf67263149e16 (diff) | |
download | samba-351b672426dfba61b7994e59350f4ee3c6d49bc0.tar.gz samba-351b672426dfba61b7994e59350f4ee3c6d49bc0.tar.bz2 samba-351b672426dfba61b7994e59350f4ee3c6d49bc0.zip |
s3: Make QueryDispInfo and QueryInfo match for guest
-rw-r--r-- | source3/passdb/pdb_ads.c | 25 |
1 files changed, 19 insertions, 6 deletions
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; i<num_users; i++) { struct samr_displayentry *e; struct dom_sid sid; + uint32_t ctrl; e = &sstate->entries[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 = ""; } |