from django.shortcuts import render from django.views import View from django.http import HttpResponse from django.contrib.auth.models import User from django.db.models.query import QuerySet from ..status_code import * from ..settings import * class ChangePassword(View): def get(self, request): return render(request, "change_password.html") def post(self, request): username = request.POST.get("username") if (username == None): return HttpResponse(INVALID_USERNAME_PASSWORD) current_password = request.POST.get("current_password") if (current_password == None): return HttpResponse(INVALID_USERNAME_PASSWORD) query: QuerySet = User.objects.filter(username=username) if (not query.exists()): return HttpResponse(INVALID_USERNAME_PASSWORD) user: User = User.objects.get(username=username) if (not user.check_password(current_password)): return HttpResponse(INVALID_USERNAME_PASSWORD) new_password = request.POST.get("new_password") if (new_password == None or not PASSWORD_MAX_SIZE >= len(new_password) >= PASSWORD_MIN_SIZE): return HttpResponse(INVALID_PASSWORD) user.set_password(new_password) user.save() return HttpResponse(PASSWORD_UPDATED)