merge change from @_2 to allow smbpasswd -x to delete user even if no
authorHerb Lewis <herb@samba.org>
Wed, 30 Jan 2002 04:07:42 +0000 (04:07 +0000)
committerHerb Lewis <herb@samba.org>
Wed, 30 Jan 2002 04:07:42 +0000 (04:07 +0000)
entry in /etc/passwd.

There are still differences in the local_password_change function. I'm
not sure which was the latest so I didn't change any thing else. Someone
needs to take a look and sync these up.
(This used to be commit 539b025397e569796f2349d33438c2be469c8c69)

source3/passdb/passdb.c

index e6abb26b3fc944f75841ea1087d0774b5264303d..fa3115d96e2d6cd25a733f316ef884125ed8d620 100644 (file)
@@ -1033,6 +1033,16 @@ BOOL local_password_change(const char *user_name, int local_flags,
 
        /* Get the smb passwd entry for this user */
        pdb_init_sam(&sam_pass);
+       if (local_flags & LOCAL_DELETE_USER) {
+               if (!pdb_delete_sam_account(sam_pass)) {
+                       slprintf(err_str,err_str_len-1, "Failed to delete entry for user %s.\n", user_name);
+                       pdb_free_sam(&sam_pass);
+                       return False;
+               }
+               slprintf(msg_str, msg_str_len-1, "Deleted user %s.\n", user_name);
+               pdb_free_sam(&sam_pass);
+               return True;
+       }
        if(!pdb_getsampwnam(sam_pass, user_name)) {
                pdb_free_sam(&sam_pass);
                
@@ -1154,13 +1164,6 @@ BOOL local_password_change(const char *user_name, int local_flags,
                        pdb_free_sam(&sam_pass);
                        return False;
                }
-       } else if (local_flags & LOCAL_DELETE_USER) {
-               if (!pdb_delete_sam_account(sam_pass)) {
-                       slprintf(err_str,err_str_len-1, "Failed to delete entry for user %s.\n", user_name);
-                       pdb_free_sam(&sam_pass);
-                       return False;
-               }
-               slprintf(msg_str, msg_str_len-1, "Deleted user %s.\n", user_name);
        } else {
                if(!pdb_update_sam_account(sam_pass)) {
                        slprintf(err_str, err_str_len-1, "Failed to modify entry for user %s.\n", user_name);