diff options
author | Gerald Carter <jerry@samba.org> | 2004-01-29 22:16:58 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2004-01-29 22:16:58 +0000 |
commit | d4420dc9023677461570eaedd1f1ca0e6c0ef758 (patch) | |
tree | 1df34bf76a7ea1fe9e7e7f12173c9c9fae1638e3 /source3/passdb | |
parent | f5bb18bfcb18e8eef7d98a4b84cd7e3183aca43a (diff) | |
download | samba-d4420dc9023677461570eaedd1f1ca0e6c0ef758.tar.gz samba-d4420dc9023677461570eaedd1f1ca0e6c0ef758.tar.bz2 samba-d4420dc9023677461570eaedd1f1ca0e6c0ef758.zip |
more initialization fixes
(This used to be commit 9e590d603547ef1e8388bea66eb5d44e4dfd6412)
Diffstat (limited to 'source3/passdb')
-rw-r--r-- | source3/passdb/pdb_interface.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/source3/passdb/pdb_interface.c b/source3/passdb/pdb_interface.c index ed05e5ad42..c656e08722 100644 --- a/source3/passdb/pdb_interface.c +++ b/source3/passdb/pdb_interface.c @@ -708,22 +708,44 @@ BOOL pdb_getsampwsid(SAM_ACCOUNT *sam_acct, const DOM_SID *sid) BOOL pdb_add_sam_account(SAM_ACCOUNT *sam_acct) { struct pdb_context *pdb_context = pdb_get_static_context(False); + const char *lm_pw, *nt_pw; + uint16 acb_flags; if (!pdb_context) { return False; } + /* disable acccounts with no passwords */ + lm_pw = pdb_get_lanman_passwd( sam_acct ); + nt_pw = pdb_get_lanman_passwd( sam_acct ); + if ( !lm_pw || !nt_pw ) { + acb_flags = pdb_get_acct_ctrl( sam_acct ) | ACB_DISABLED; + pdb_set_acct_ctrl( sam_acct, acb_flags, PDB_SET ); + pdb_set_init_flags(sam_acct, PDB_ACCTCTRL, PDB_SET); + } + return NT_STATUS_IS_OK(pdb_context->pdb_add_sam_account(pdb_context, sam_acct)); } BOOL pdb_update_sam_account(SAM_ACCOUNT *sam_acct) { struct pdb_context *pdb_context = pdb_get_static_context(False); + const char *lm_pw, *nt_pw; + uint16 acb_flags; if (!pdb_context) { return False; } + /* disable acccounts with no passwords */ + lm_pw = pdb_get_lanman_passwd( sam_acct ); + nt_pw = pdb_get_lanman_passwd( sam_acct ); + if ( !lm_pw || !nt_pw ) { + acb_flags = pdb_get_acct_ctrl( sam_acct ) | ACB_DISABLED; + pdb_set_acct_ctrl( sam_acct, acb_flags, PDB_SET ); + pdb_set_init_flags(sam_acct, PDB_ACCTCTRL, PDB_SET); + } + return NT_STATUS_IS_OK(pdb_context->pdb_update_sam_account(pdb_context, sam_acct)); } |