reorder code, add disabled acct check, consider dont_expire flag for password