diff options
author | Gerald Carter <jerry@samba.org> | 2001-12-31 00:06:51 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2001-12-31 00:06:51 +0000 |
commit | 7fdb821ef32459b6cdcdf6f7656d14804d4c94ed (patch) | |
tree | 5ffb3cbad140bcbf8f8a4186d1cc20dce7123fdf /source3/passdb/passdb.c | |
parent | 78528b4ec6cb675bfb81a1b8c1b7e62ae19db8ef (diff) | |
download | samba-7fdb821ef32459b6cdcdf6f7656d14804d4c94ed.tar.gz samba-7fdb821ef32459b6cdcdf6f7656d14804d4c94ed.tar.bz2 samba-7fdb821ef32459b6cdcdf6f7656d14804d4c94ed.zip |
some merges from 2.2. Still need to merge in changes from pdb_tdb.c
but it will take more time as I don't want to loose any fixes that
are only in HEAD.
(This used to be commit efcde5d9d8ce44c0613764504d797be54ba21473)
Diffstat (limited to 'source3/passdb/passdb.c')
-rw-r--r-- | source3/passdb/passdb.c | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/source3/passdb/passdb.c b/source3/passdb/passdb.c index eeecc0abe5..d6204fc96c 100644 --- a/source3/passdb/passdb.c +++ b/source3/passdb/passdb.c @@ -155,19 +155,19 @@ BOOL pdb_init_sam_pw(SAM_ACCOUNT **new_sam_acct, const struct passwd *pwd) pstrcpy(str, lp_logon_path()); standard_sub_advanced(-1, pwd->pw_name, "", pwd->pw_gid, pwd->pw_name, str); - pdb_set_profile_path(*new_sam_acct, str); + pdb_set_profile_path(*new_sam_acct, str, False); pstrcpy(str, lp_logon_home()); standard_sub_advanced(-1, pwd->pw_name, "", pwd->pw_gid, pwd->pw_name, str); - pdb_set_homedir(*new_sam_acct, str); + pdb_set_homedir(*new_sam_acct, str, False); pstrcpy(str, lp_logon_drive()); standard_sub_advanced(-1, pwd->pw_name, "", pwd->pw_gid, pwd->pw_name, str); - pdb_set_dir_drive(*new_sam_acct, str); + pdb_set_dir_drive(*new_sam_acct, str, False); pstrcpy(str, lp_logon_script()); standard_sub_advanced(-1, pwd->pw_name, "", pwd->pw_gid, pwd->pw_name, str); - pdb_set_logon_script(*new_sam_acct, str); + pdb_set_logon_script(*new_sam_acct, str, False); return True; } @@ -1406,6 +1406,16 @@ BOOL pdb_set_logons_divs (SAM_ACCOUNT *sampass, uint16 hours) return True; } +BOOL pdb_set_init_flag (SAM_ACCOUNT *sampass, uint32 flag) +{ + if (!sampass) + return False; + + sampass->init_flag |= flag; + + return True; +} + BOOL pdb_set_uid (SAM_ACCOUNT *sampass, const uid_t uid) { if (!sampass) @@ -1520,7 +1530,7 @@ BOOL pdb_set_fullname(SAM_ACCOUNT *sampass, const char *fullname) Set the user's logon script. ********************************************************************/ -BOOL pdb_set_logon_script(SAM_ACCOUNT *sampass, const char *logon_script) +BOOL pdb_set_logon_script(SAM_ACCOUNT *sampass, const char *logon_script, BOOL store) { if (!sampass) return False; @@ -1530,6 +1540,9 @@ BOOL pdb_set_logon_script(SAM_ACCOUNT *sampass, const char *logon_script) StrnCpy (sampass->logon_script, logon_script, strlen(logon_script)); + if (store) + pdb_set_init_flag(sampass, FLAG_SAM_LOGONSCRIPT); + return True; } @@ -1537,7 +1550,7 @@ BOOL pdb_set_logon_script(SAM_ACCOUNT *sampass, const char *logon_script) Set the user's profile path. ********************************************************************/ -BOOL pdb_set_profile_path (SAM_ACCOUNT *sampass, const char *profile_path) +BOOL pdb_set_profile_path (SAM_ACCOUNT *sampass, const char *profile_path, BOOL store) { if (!sampass) return False; @@ -1546,6 +1559,9 @@ BOOL pdb_set_profile_path (SAM_ACCOUNT *sampass, const char *profile_path) return False; StrnCpy (sampass->profile_path, profile_path, strlen(profile_path)); + + if (store) + pdb_set_init_flag(sampass, FLAG_SAM_PROFILE); return True; } @@ -1554,7 +1570,7 @@ BOOL pdb_set_profile_path (SAM_ACCOUNT *sampass, const char *profile_path) Set the user's directory drive. ********************************************************************/ -BOOL pdb_set_dir_drive (SAM_ACCOUNT *sampass, const char *dir_drive) +BOOL pdb_set_dir_drive (SAM_ACCOUNT *sampass, const char *dir_drive, BOOL store) { if (!sampass) return False; @@ -1564,6 +1580,9 @@ BOOL pdb_set_dir_drive (SAM_ACCOUNT *sampass, const char *dir_drive) StrnCpy (sampass->dir_drive, dir_drive, strlen(dir_drive)); + if (store) + pdb_set_init_flag(sampass, FLAG_SAM_DRIVE); + return True; } @@ -1571,7 +1590,7 @@ BOOL pdb_set_dir_drive (SAM_ACCOUNT *sampass, const char *dir_drive) Set the user's home directory. ********************************************************************/ -BOOL pdb_set_homedir (SAM_ACCOUNT *sampass, const char *homedir) +BOOL pdb_set_homedir (SAM_ACCOUNT *sampass, const char *homedir, BOOL store) { if (!sampass) return False; @@ -1581,6 +1600,9 @@ BOOL pdb_set_homedir (SAM_ACCOUNT *sampass, const char *homedir) StrnCpy (sampass->home_dir, homedir, strlen(homedir)); + if (store) + pdb_set_init_flag(sampass, FLAG_SAM_SMBHOME); + return True; } |