diff options
author | Jean-François Micouleau <jfm@samba.org> | 2001-12-02 00:03:35 +0000 |
---|---|---|
committer | Jean-François Micouleau <jfm@samba.org> | 2001-12-02 00:03:35 +0000 |
commit | 83304678a06dab22d87086d0b41e245422be7ae8 (patch) | |
tree | 468138501fea016bf7233c6645c2b4938ece1f1f /source3/passdb/pdb_ldap.c | |
parent | d383b618b4b2a1007568e961627c5a9bf5a38594 (diff) | |
download | samba-83304678a06dab22d87086d0b41e245422be7ae8.tar.gz samba-83304678a06dab22d87086d0b41e245422be7ae8.tar.bz2 samba-83304678a06dab22d87086d0b41e245422be7ae8.zip |
added mapping of primary gid to rid thru the group mapping code.
and cleanup and comments in passdb/passdb.c
J.F.
(This used to be commit 6533339887832ca6dd42d99385c615db7bee3d43)
Diffstat (limited to 'source3/passdb/pdb_ldap.c')
-rw-r--r-- | source3/passdb/pdb_ldap.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/source3/passdb/pdb_ldap.c b/source3/passdb/pdb_ldap.c index 62c3a1b4a2..d0eebbed89 100644 --- a/source3/passdb/pdb_ldap.c +++ b/source3/passdb/pdb_ldap.c @@ -577,13 +577,22 @@ static BOOL init_ldap_from_sam (LDAPMod *** mods, int ldap_state, const SAM_ACCO make_a_mod(mods, ldap_state, "description", pdb_get_acct_desc(sampass)); make_a_mod(mods, ldap_state, "userWorkstations", pdb_get_workstations(sampass)); - if ( !sampass->user_rid) + if ( !sampass->user_rid) sampass->user_rid = pdb_uid_to_user_rid(pdb_get_uid(sampass)); slprintf(temp, sizeof(temp) - 1, "%i", sampass->user_rid); make_a_mod(mods, ldap_state, "rid", temp); - if ( !sampass->group_rid) - sampass->group_rid = pdb_gid_to_group_rid(pdb_get_gid(sampass)); + if ( !sampass->group_rid) { + GROUP_MAP map; + + if (get_group_map_from_gid(pdb_get_gid(sampass), &map)) { + free_privilege(&map.priv_set); + sid_peek_rid(&map.sid, &sampass->group_rid); + } + else + sampass->group_rid = pdb_gid_to_group_rid(pdb_get_gid(sampass)); + } + slprintf(temp, sizeof(temp) - 1, "%i", sampass->group_rid); make_a_mod(mods, ldap_state, "primaryGroupID", temp); |