aboutsummaryrefslogtreecommitdiff
path: root/users
diff options
context:
space:
mode:
authorBobby <[email protected]>2022-07-29 23:49:10 +0530
committerBobby <[email protected]>2022-07-29 23:49:10 +0530
commit78cce196271b0fc82299e0d753249ac4e2e64436 (patch)
tree094d5c70d9c35f71df96aed65518c35a7ee84f82 /users
parent3ff2a1fc2363a8ce0416189b29357bae72fff11d (diff)
downloadthatcomputerscientist-78cce196271b0fc82299e0d753249ac4e2e64436.tar.xz
thatcomputerscientist-78cce196271b0fc82299e0d753249ac4e2e64436.zip
password change on account page
Diffstat (limited to 'users')
-rw-r--r--users/urls.py1
-rw-r--r--users/views.py27
2 files changed, 27 insertions, 1 deletions
diff --git a/users/urls.py b/users/urls.py
index f649d11a..24230426 100644
--- a/users/urls.py
+++ b/users/urls.py
@@ -8,6 +8,7 @@ urlpatterns = [
path('login', views.login_user, name='login'),
path('logout', views.logout_user, name='logout'),
path('update', views.update_user, name='update'),
+ path('changepassword', views.change_password, name='changepassword'),
]
# Configure Admin Site
diff --git a/users/views.py b/users/views.py
index 56ea9dab..175d68e6 100644
--- a/users/views.py
+++ b/users/views.py
@@ -1,6 +1,6 @@
from django.http import HttpResponseRedirect
from django.shortcuts import render, redirect
-from django.contrib.auth import authenticate, login, logout
+from django.contrib.auth import authenticate, login, logout, update_session_auth_hash
from django.contrib import messages
from .models import UserProfile
from django.contrib.auth.models import User
@@ -65,3 +65,28 @@ def update_user(request):
messages.error(request, 'Unable to update profile! Please try again later.')
return redirect('/')
+
+def change_password(request):
+ username = request.user
+ old_password = request.POST['oldPassword']
+ new_password = request.POST['newPassword']
+ confirm_password = request.POST['confirmPassword']
+ if username is not None:
+ user = User.objects.get(username=username)
+ if user.check_password(old_password):
+ if new_password == confirm_password:
+ user.set_password(new_password)
+ user.save()
+ update_session_auth_hash(request, user)
+ messages.success(request, 'Password was successfully changed!')
+ return redirect('/account')
+ else:
+ messages.error(request, 'The new password and confirmation password do not match!')
+ return redirect('/account')
+ else:
+ messages.error(request, 'Old password is incorrect!')
+ return redirect('/account')
+ else:
+ messages.error(request, 'Unable to change password! Please try again later.')
+ return redirect('/')
+