r2481: Patch from Igor Belyi <sambauser@katehok.ac93.org>. Ensure pdb
authorJeremy Allison <jra@samba.org>
Wed, 22 Sep 2004 00:33:09 +0000 (00:33 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 15:52:45 +0000 (10:52 -0500)
user is deleted first before deleting UNIX user (LDAP backend
needs this ordering).
Jeremy.

source/rpc_server/srv_samr_nt.c

index 34fad9b0ed384b562a3f00a7f2b9acd1de934578..37617db5e8fc2c5a58bf38ef079b2ba1565a2b1d 100644 (file)
@@ -3675,7 +3675,14 @@ NTSTATUS _samr_delete_dom_user(pipes_struct *p, SAMR_Q_DELETE_DOM_USER *q_u, SAM
                return NT_STATUS_NO_SUCH_USER;
        }
 
-       /* delete the unix side */
+       /* First delete the samba side */
+       if (!pdb_delete_sam_account(sam_pass)) {
+               DEBUG(5,("_samr_delete_dom_user:Failed to delete entry for user %s.\n", pdb_get_username(sam_pass)));
+               pdb_free_sam(&sam_pass);
+               return NT_STATUS_CANNOT_DELETE;
+       }
+
+       /* Now delete the unix side */
        /*
         * note: we don't check if the delete really happened
         * as the script is not necessary present
@@ -3683,13 +3690,7 @@ NTSTATUS _samr_delete_dom_user(pipes_struct *p, SAMR_Q_DELETE_DOM_USER *q_u, SAM
         */
        smb_delete_user(pdb_get_username(sam_pass));
 
-       /* and delete the samba side */
-       if (!pdb_delete_sam_account(sam_pass)) {
-               DEBUG(5,("_samr_delete_dom_user:Failed to delete entry for user %s.\n", pdb_get_username(sam_pass)));
-               pdb_free_sam(&sam_pass);
-               return NT_STATUS_CANNOT_DELETE;
-       }
-       
+
        pdb_free_sam(&sam_pass);
 
        if (!close_policy_hnd(p, &q_u->user_pol))