We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
First time password reset should redirect to login page instead of confirmation page
## Description
* After the user resets their password at the page: `/auth/password_reset_confirm`, they are redirected to `/auth/reset/done/`.
* They should be redirected to `/auth/login` instead.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `mathesar/users/password_reset.py`
Content:
```
1 from django.contrib.auth.forms import SetPasswordForm
2 from django.contrib.auth.views import PasswordResetConfirmView
3 from django.utils.decorators import method_decorator
4 from django.views.decorators.cache import never_cache
5 from django.views.decorators.debug import sensitive_post_parameters
6 from django.utils.translation import gettext_lazy as _
7 
8 
9 class MathesarSetPasswordForm(SetPasswordForm):
10     def save(self, commit=True):
11         password = self.cleaned_data["new_password1"]
12         self.user.set_password(password)
13         # Default password is replaced with a password is set by the user, so change the status
14         self.user.password_change_needed = False
15         if commit:
16             self.user.save()
17         return self.user
18 
19 
20 class MathesarPasswordResetConfirmView(PasswordResetConfirmView):
21     # Override default form as we need custom save behaviour
22     form_class = MathesarSetPasswordForm
23     template_name = 'users/password_reset_confirmation.html'
24     title = _('Change Default Password')
25 
26     @method_decorator(sensitive_post_parameters())
27     @method_decorator(never_cache)
28     def dispatch(self, *args, **kwargs):
29         self.user = self.request.user
30         self.validlink = True
31         # Avoid calling the PasswordResetConfirmView `dispatch` method
32         # as it contains behaviours not suited for our user flow
33         return super(PasswordResetConfirmView, self).dispatch(*args, **kwargs)
34 
35     def form_valid(self, form):
36         form.save()
37         return super(PasswordResetConfirmView, self).form_valid(form)
38
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/mathesar/users/password_reset.py b/mathesar/users/password_reset.py
--- a/mathesar/users/password_reset.py
+++ b/mathesar/users/password_reset.py
@@ -22,6 +22,7 @@
     form_class = MathesarSetPasswordForm
     template_name = 'users/password_reset_confirmation.html'
     title = _('Change Default Password')
+    success_url = "/auth/login"
 
     @method_decorator(sensitive_post_parameters())
     @method_decorator(never_cache)

{"golden_diff": "diff --git a/mathesar/users/password_reset.py b/mathesar/users/password_reset.py\n--- a/mathesar/users/password_reset.py\n+++ b/mathesar/users/password_reset.py\n@@ -22,6 +22,7 @@\n     form_class = MathesarSetPasswordForm\n     template_name = 'users/password_reset_confirmation.html'\n     title = _('Change Default Password')\n+    success_url = \"/auth/login\"\n \n     @method_decorator(sensitive_post_parameters())\n     @method_decorator(never_cache)\n", "issue": "First time password reset should redirect to login page instead of confirmation page\n## Description\r\n* After the user resets their password at the page: `/auth/password_reset_confirm`, they are redirected to `/auth/reset/done/`.\r\n* They should be redirected to `/auth/login` instead.\n", "before_files": [{"content": "from django.contrib.auth.forms import SetPasswordForm\nfrom django.contrib.auth.views import PasswordResetConfirmView\nfrom django.utils.decorators import method_decorator\nfrom django.views.decorators.cache import never_cache\nfrom django.views.decorators.debug import sensitive_post_parameters\nfrom django.utils.translation import gettext_lazy as _\n\n\nclass MathesarSetPasswordForm(SetPasswordForm):\n    def save(self, commit=True):\n        password = self.cleaned_data[\"new_password1\"]\n        self.user.set_password(password)\n        # Default password is replaced with a password is set by the user, so change the status\n        self.user.password_change_needed = False\n        if commit:\n            self.user.save()\n        return self.user\n\n\nclass MathesarPasswordResetConfirmView(PasswordResetConfirmView):\n    # Override default form as we need custom save behaviour\n    form_class = MathesarSetPasswordForm\n    template_name = 'users/password_reset_confirmation.html'\n    title = _('Change Default Password')\n\n    @method_decorator(sensitive_post_parameters())\n    @method_decorator(never_cache)\n    def dispatch(self, *args, **kwargs):\n        self.user = self.request.user\n        self.validlink = True\n        # Avoid calling the PasswordResetConfirmView `dispatch` method\n        # as it contains behaviours not suited for our user flow\n        return super(PasswordResetConfirmView, self).dispatch(*args, **kwargs)\n\n    def form_valid(self, form):\n        form.save()\n        return super(PasswordResetConfirmView, self).form_valid(form)\n", "path": "mathesar/users/password_reset.py"}], "after_files": [{"content": "from django.contrib.auth.forms import SetPasswordForm\nfrom django.contrib.auth.views import PasswordResetConfirmView\nfrom django.utils.decorators import method_decorator\nfrom django.views.decorators.cache import never_cache\nfrom django.views.decorators.debug import sensitive_post_parameters\nfrom django.utils.translation import gettext_lazy as _\n\n\nclass MathesarSetPasswordForm(SetPasswordForm):\n    def save(self, commit=True):\n        password = self.cleaned_data[\"new_password1\"]\n        self.user.set_password(password)\n        # Default password is replaced with a password is set by the user, so change the status\n        self.user.password_change_needed = False\n        if commit:\n            self.user.save()\n        return self.user\n\n\nclass MathesarPasswordResetConfirmView(PasswordResetConfirmView):\n    # Override default form as we need custom save behaviour\n    form_class = MathesarSetPasswordForm\n    template_name = 'users/password_reset_confirmation.html'\n    title = _('Change Default Password')\n    success_url = \"/auth/login\"\n\n    @method_decorator(sensitive_post_parameters())\n    @method_decorator(never_cache)\n    def dispatch(self, *args, **kwargs):\n        self.user = self.request.user\n        self.validlink = True\n        # Avoid calling the PasswordResetConfirmView `dispatch` method\n        # as it contains behaviours not suited for our user flow\n        return super(PasswordResetConfirmView, self).dispatch(*args, **kwargs)\n\n    def form_valid(self, form):\n        form.save()\n        return super(PasswordResetConfirmView, self).form_valid(form)\n", "path": "mathesar/users/password_reset.py"}]}