first comit
This commit is contained in:
63
accounts/views.py
Executable file
63
accounts/views.py
Executable file
@@ -0,0 +1,63 @@
|
||||
from django.shortcuts import render, redirect
|
||||
from django.urls import reverse
|
||||
from accounts.forms import *
|
||||
import json
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.core.validators import validate_email
|
||||
from django.contrib.auth.hashers import make_password
|
||||
from django.contrib.auth import logout,login,authenticate
|
||||
from django.http import HttpResponseRedirect, HttpResponse, JsonResponse
|
||||
from django.conf import settings
|
||||
from custom_user.models import User
|
||||
|
||||
|
||||
def create_session(request, username):
|
||||
print("logging in")
|
||||
print(username)
|
||||
user=User.objects.get(email=username)
|
||||
login(request, user)
|
||||
return HttpResponseRedirect(reverse('index'))
|
||||
|
||||
def logout_view(request):
|
||||
logout(request)
|
||||
return redirect(reverse('accounts:sign_in'))
|
||||
|
||||
def sign_in(request):
|
||||
if request.method == 'POST':
|
||||
form = LoginForm(request, data=request.POST)
|
||||
context={'form':form, 'invalid': True}
|
||||
if form.is_valid():
|
||||
username=form.cleaned_data.get('username')
|
||||
password=form.cleaned_data.get('password')
|
||||
user=authenticate(username=username,password=password)
|
||||
if user:
|
||||
return create_session(request,user.email)
|
||||
else:
|
||||
print(f"form is invalid, {form.errors}")
|
||||
return render(request, 'sign-in.html', {'form': LoginForm})
|
||||
|
||||
def sign_up(request):
|
||||
if request.user.is_authenticated:
|
||||
return redirect(reverse('index'))
|
||||
return render(request, 'sign-up.html', {'form': LoginForm})
|
||||
|
||||
def user_sign_up(request):
|
||||
if request.method == 'POST':
|
||||
data = json.loads(request.POST.get('data', ''))
|
||||
try:
|
||||
validate_email(data['email'])
|
||||
except ValidationError as e:
|
||||
print("bad email, details:", e)
|
||||
message = 'Email Validation error'
|
||||
messageTitle = 'Error!'
|
||||
messageStatus = 'text-bg-danger'
|
||||
response = JsonResponse({'messageTitle':messageTitle, 'message': message, 'messageStatus':messageStatus})
|
||||
return response
|
||||
password = make_password(data['password'])
|
||||
|
||||
user = User.objects.create(email = data['email'], password=password)
|
||||
login(request, user)
|
||||
return JsonResponse({'no_errors':True})
|
||||
|
||||
else:
|
||||
return render(request, 'sign-up.html', {'form': LoginForm})
|
||||
Reference in New Issue
Block a user