move disabling code to context functions instead of backwards compatible wrappers
authorGerald Carter <jerry@samba.org>
Wed, 4 Feb 2004 19:46:29 +0000 (19:46 +0000)
committerGerald Carter <jerry@samba.org>
Wed, 4 Feb 2004 19:46:29 +0000 (19:46 +0000)
(This used to be commit e62ef2ba2d73f492d879af4d06b223f8e739dc6c)

source3/passdb/pdb_interface.c

index e88b58f1e2d0f0c866d674db7593fe4e225abb71..4d8c14cda73a042f5876af3d0b47851afa87c757 100644 (file)
@@ -232,12 +232,26 @@ static NTSTATUS context_getsampwsid(struct pdb_context *context, SAM_ACCOUNT *sa
 static NTSTATUS context_add_sam_account(struct pdb_context *context, SAM_ACCOUNT *sam_acct)
 {
        NTSTATUS ret = NT_STATUS_UNSUCCESSFUL;
+       const char *lm_pw, *nt_pw;
+       uint16 acb_flags;
 
        if ((!context) || (!context->pdb_methods)) {
                DEBUG(0, ("invalid pdb_context specified!\n"));
                return ret;
        }
 
+       /* disable acccounts with no passwords (that has not 
+          been allowed by the  ACB_PWNOTREQ bit */
+       
+       lm_pw = pdb_get_lanman_passwd( sam_acct );
+       nt_pw = pdb_get_lanman_passwd( sam_acct );
+       acb_flags = pdb_get_acct_ctrl( sam_acct );
+       if ( !lm_pw && !nt_pw && !(acb_flags&ACB_PWNOTREQ) ) {
+               acb_flags |= ACB_DISABLED;
+               pdb_set_acct_ctrl( sam_acct, acb_flags, PDB_SET );
+               pdb_set_init_flags(sam_acct, PDB_ACCTCTRL, PDB_SET);
+       }
+       
        /** @todo  This is where a 're-read on add' should be done */
        /* We now add a new account to the first database listed. 
         * Should we? */
@@ -248,6 +262,8 @@ static NTSTATUS context_add_sam_account(struct pdb_context *context, SAM_ACCOUNT
 static NTSTATUS context_update_sam_account(struct pdb_context *context, SAM_ACCOUNT *sam_acct)
 {
        NTSTATUS ret = NT_STATUS_UNSUCCESSFUL;
+       const char *lm_pw, *nt_pw;
+       uint16 acb_flags;
 
        if (!context) {
                DEBUG(0, ("invalid pdb_context specified!\n"));
@@ -259,6 +275,18 @@ static NTSTATUS context_update_sam_account(struct pdb_context *context, SAM_ACCO
                return ret;
        }
 
+       /* disable acccounts with no passwords (that has not 
+          been allowed by the  ACB_PWNOTREQ bit */
+       
+       lm_pw = pdb_get_lanman_passwd( sam_acct );
+       nt_pw = pdb_get_lanman_passwd( sam_acct );
+       acb_flags = pdb_get_acct_ctrl( sam_acct );
+       if ( !lm_pw && !nt_pw && !(acb_flags&ACB_PWNOTREQ) ) {
+               acb_flags |= ACB_DISABLED;
+               pdb_set_acct_ctrl( sam_acct, acb_flags, PDB_SET );
+               pdb_set_init_flags(sam_acct, PDB_ACCTCTRL, PDB_SET);
+       }
+       
        /** @todo  This is where a 're-read on update' should be done */
 
        return sam_acct->methods->update_sam_account(sam_acct->methods, sam_acct);
@@ -708,50 +736,22 @@ 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 (that has not 
-          been allowed by the  ACB_PWNOTREQ bit */
-
-       lm_pw = pdb_get_lanman_passwd( sam_acct );
-       nt_pw = pdb_get_lanman_passwd( sam_acct );
-       acb_flags = pdb_get_acct_ctrl( sam_acct );
-       if ( !lm_pw && !nt_pw && !(acb_flags&ACB_PWNOTREQ) ) {
-               acb_flags |= 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 (that has not 
-          been allowed by the  ACB_PWNOTREQ bit */
-       
-       lm_pw = pdb_get_lanman_passwd( sam_acct );
-       nt_pw = pdb_get_lanman_passwd( sam_acct );
-       acb_flags = pdb_get_acct_ctrl( sam_acct );
-       if ( !lm_pw && !nt_pw && !(acb_flags&ACB_PWNOTREQ) ) {
-               acb_flags |= 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));
 }