summaryrefslogtreecommitdiff
path: root/source3/passdb
diff options
context:
space:
mode:
Diffstat (limited to 'source3/passdb')
-rw-r--r--source3/passdb/passdb.c7
-rw-r--r--source3/passdb/pdb_get_set.c36
-rw-r--r--source3/passdb/pdb_ldap.c62
3 files changed, 11 insertions, 94 deletions
diff --git a/source3/passdb/passdb.c b/source3/passdb/passdb.c
index 6c84cccf79..6c84303947 100644
--- a/source3/passdb/passdb.c
+++ b/source3/passdb/passdb.c
@@ -152,11 +152,16 @@ NTSTATUS samu_set_unix(struct samu *user, const struct passwd *pwd)
return NT_STATUS_NO_SUCH_USER;
}
+ /* Basic properties based upon the Unix account information */
+
pdb_set_username(user, pwd->pw_name, PDB_SET);
pdb_set_fullname(user, pwd->pw_gecos, PDB_SET);
- pdb_set_unix_homedir(user, pwd->pw_dir, PDB_SET);
pdb_set_domain (user, get_global_sam_name(), PDB_DEFAULT);
+ /* save the password structure for later use */
+
+ user->unix_pw = tcopy_passwd( user, pwd );
+
/* Special case for the guest account which must have a RID of 501.
By default the guest account is a member of of the domain users
group as well as the domain guests group. Verified against
diff --git a/source3/passdb/pdb_get_set.c b/source3/passdb/pdb_get_set.c
index c39eb71162..92bc228e01 100644
--- a/source3/passdb/pdb_get_set.c
+++ b/source3/passdb/pdb_get_set.c
@@ -265,10 +265,10 @@ const char* pdb_get_homedir (const struct samu *sampass)
const char* pdb_get_unix_homedir (const struct samu *sampass)
{
- if (sampass)
- return (sampass->unix_home_dir);
- else
- return (NULL);
+ if ( sampass && sampass->unix_pw )
+ return ( sampass->unix_pw->pw_dir );
+
+ return (NULL);
}
const char* pdb_get_dir_drive (const struct samu *sampass)
@@ -830,34 +830,6 @@ BOOL pdb_set_homedir (struct samu *sampass, const char *home_dir, enum pdb_value
}
/*********************************************************************
- Set the user's unix home directory.
- ********************************************************************/
-
-BOOL pdb_set_unix_homedir (struct samu *sampass, const char *unix_home_dir, enum pdb_value_state flag)
-{
- if (!sampass)
- return False;
-
- if (unix_home_dir) {
- DEBUG(10, ("pdb_set_unix_homedir: setting home dir %s, was %s\n", unix_home_dir,
- (sampass->unix_home_dir)?(sampass->unix_home_dir):"NULL"));
-
- sampass->unix_home_dir = talloc_strdup(sampass,
- unix_home_dir);
-
- if (!sampass->unix_home_dir) {
- DEBUG(0, ("pdb_set_unix_home_dir: talloc_strdup() failed!\n"));
- return False;
- }
-
- } else {
- sampass->unix_home_dir = PDB_NOT_QUITE_NULL;
- }
-
- return pdb_set_init_flags(sampass, PDB_UNIXHOMEDIR, flag);
-}
-
-/*********************************************************************
Set the user's account description.
********************************************************************/
diff --git a/source3/passdb/pdb_ldap.c b/source3/passdb/pdb_ldap.c
index 3344b17888..89b958e915 100644
--- a/source3/passdb/pdb_ldap.c
+++ b/source3/passdb/pdb_ldap.c
@@ -441,67 +441,7 @@ static int ldapsam_delete_entry(struct ldapsam_privates *priv,
return smbldap_modify(priv->smbldap_state, dn, mods);
}
-/* New Interface is being implemented here */
-
-#if 0 /* JERRY - not uesed anymore */
-
-/**********************************************************************
-Initialize struct samu from an LDAP query (unix attributes only)
-*********************************************************************/
-static BOOL get_unix_attributes (struct ldapsam_privates *ldap_state,
- struct samu * sampass,
- LDAPMessage * entry,
- gid_t *gid)
-{
- pstring homedir;
- pstring temp;
- char **ldap_values;
- char **values;
-
- if ((ldap_values = ldap_get_values (ldap_state->smbldap_state->ldap_struct, entry, "objectClass")) == NULL) {
- DEBUG (1, ("get_unix_attributes: no objectClass! \n"));
- return False;
- }
-
- for (values=ldap_values;*values;values++) {
- if (strequal(*values, LDAP_OBJ_POSIXACCOUNT )) {
- break;
- }
- }
-
- if (!*values) { /*end of array, no posixAccount */
- DEBUG(10, ("user does not have %s attributes\n", LDAP_OBJ_POSIXACCOUNT));
- ldap_value_free(ldap_values);
- return False;
- }
- ldap_value_free(ldap_values);
-
- if ( !smbldap_get_single_pstring(ldap_state->smbldap_state->ldap_struct, entry,
- get_userattr_key2string(ldap_state->schema_ver, LDAP_ATTR_UNIX_HOME), homedir) )
- {
- return False;
- }
-
- if ( !smbldap_get_single_pstring(ldap_state->smbldap_state->ldap_struct, entry,
- get_userattr_key2string(ldap_state->schema_ver, LDAP_ATTR_GIDNUMBER), temp) )
- {
- return False;
- }
-
- *gid = (gid_t)atol(temp);
-
- pdb_set_unix_homedir(sampass, homedir, PDB_SET);
-
- DEBUG(10, ("user has %s attributes\n", LDAP_OBJ_POSIXACCOUNT));
-
- return True;
-}
-
-#endif
-
-static time_t ldapsam_get_entry_timestamp(
- struct ldapsam_privates *ldap_state,
- LDAPMessage * entry)
+static time_t ldapsam_get_entry_timestamp( struct ldapsam_privates *ldap_state, LDAPMessage * entry)
{
pstring temp;
struct tm tm;