Authentication frontend update
This commit is contained in:
parent
ba37eeb6f4
commit
0f52b54a2e
@ -207,3 +207,6 @@ CORS_ALLOW_HEADERS = ('content-disposition', 'accept-encoding',
|
||||
'content-type', 'accept', 'origin', 'authorization')
|
||||
|
||||
MEDIA_URL = "/media/"
|
||||
|
||||
LOGIN_URL='welcome'
|
||||
LOGIN_REDIRECT_URL='welcome'
|
||||
|
@ -16,10 +16,11 @@ Including another URLconf
|
||||
from django.contrib import admin
|
||||
from django.urls import include
|
||||
from django.urls import path
|
||||
from .views import index
|
||||
from .views import home, welcome
|
||||
|
||||
urlpatterns = [
|
||||
path('', index),
|
||||
path('', welcome, name='welcome'),
|
||||
path('home', home, name='home'),
|
||||
path('users/', include("users.urls")),
|
||||
path('questions/', include("questions.urls")),
|
||||
path('answers/', include("answers.urls")),
|
||||
|
@ -1,9 +1,15 @@
|
||||
from django.shortcuts import render, redirect
|
||||
from django.template import loader
|
||||
from django.contrib.auth.decorators import login_required
|
||||
|
||||
|
||||
def index(request):
|
||||
@login_required
|
||||
def home(request):
|
||||
# context = {
|
||||
# 'latest_question_list': latest_question_list,
|
||||
# }
|
||||
return render(request, 'index.html')
|
||||
return render(request, 'home.html')
|
||||
|
||||
|
||||
def welcome(request):
|
||||
return render(request, 'welcome.html')
|
||||
|
@ -23,6 +23,10 @@
|
||||
color: #00916E;
|
||||
}
|
||||
|
||||
.sidenav-footer {
|
||||
|
||||
}
|
||||
|
||||
.main {
|
||||
margin-left: 160px;
|
||||
padding: 0px 10px;
|
||||
@ -51,6 +55,12 @@
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.authContent h3 {
|
||||
margin: 0;
|
||||
padding: 0 0 20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.authContent p {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
@ -106,4 +116,18 @@ input[type=checkbox]{
|
||||
display: block;
|
||||
}
|
||||
|
||||
.authContent button{
|
||||
width: 100%;
|
||||
margin-bottom: 20px;
|
||||
height: 30px;
|
||||
color: #FFF;
|
||||
font-size: 15px;
|
||||
background: #00916E;
|
||||
cursor: pointer;
|
||||
border-radius: 25px;
|
||||
border: none;
|
||||
outline: none;
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
background-color:#FA003F
|
||||
|
21
templates/login2.html
Normal file
21
templates/login2.html
Normal file
@ -0,0 +1,21 @@
|
||||
{% extends "authBase.html" %}
|
||||
|
||||
{% block title %}Login{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h2>Log In</h2>
|
||||
<form method="post"> {% csrf_token %}
|
||||
|
||||
{% for field in login_form %}
|
||||
<p>
|
||||
{{field.label_tag}}
|
||||
{{field}}
|
||||
{% for error in field.errors %}
|
||||
<p style="color: red;">{{error}}</p>
|
||||
{% endfor %}
|
||||
</p>
|
||||
{% endfor %}
|
||||
<input type="submit" value="Login">
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
11
templates/welcome.html
Normal file
11
templates/welcome.html
Normal file
@ -0,0 +1,11 @@
|
||||
{% extends "authBase.html" %}
|
||||
|
||||
{% block title %}Super Original and Innovative Test App{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h2>Super Original and Innovative Test App</h2>
|
||||
<h3>Get started now</h3>
|
||||
<button onclick="location.href = 'users/login'">Already have an account</button>
|
||||
<button onclick="location.href = 'users/register'">Create new account</button>
|
||||
{% endblock %}
|
||||
|
@ -1,5 +1,5 @@
|
||||
from django import forms
|
||||
from django.contrib.auth.forms import UserCreationForm
|
||||
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm, UsernameField
|
||||
from .models import User
|
||||
|
||||
class RegistrationForm(UserCreationForm):
|
||||
@ -12,3 +12,12 @@ class RegistrationForm(UserCreationForm):
|
||||
class Meta:
|
||||
model = User
|
||||
fields = ("email", "first_name", "last_name", "password1", "password2")
|
||||
|
||||
|
||||
class LoginForm(AuthenticationForm):
|
||||
#email = forms.EmailField(max_length=60, widget=forms.EmailInput(attrs={'placeholder': 'Enter Email'}))
|
||||
password = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder': 'Enter Password'}))
|
||||
|
||||
class Meta:
|
||||
model = User
|
||||
fields = ("email", "password")
|
||||
|
@ -4,7 +4,7 @@ from django.urls import path
|
||||
from users.views import UserModelViewSet
|
||||
from rest_framework_simplejwt.views import TokenObtainPairView
|
||||
from rest_framework_simplejwt.views import TokenRefreshView
|
||||
from .views import PasswordReset, UserPasswordResetConfirmView, RegisterViewSet, login, logout, register, register_success, loginn, login_success
|
||||
from .views import PasswordReset, UserPasswordResetConfirmView, RegisterViewSet, login, logout, register, register_success, login2
|
||||
|
||||
|
||||
router = DefaultRouter(trailing_slash=False)
|
||||
@ -13,10 +13,10 @@ router.register("items", UserModelViewSet)
|
||||
|
||||
urlpatterns = [
|
||||
path("", include(router.urls)),
|
||||
path('login', loginn, name='login'),
|
||||
path('login', login, name='login'),
|
||||
path('logout', logout, name='logout'),
|
||||
path('register/success', register_success, name='register_success'),
|
||||
path('login/success', login_success, name='login_success'),
|
||||
#path('login/success', login_success, name='login_success'),
|
||||
# path('register', RegisterViewSet.as_view(), name='register'),
|
||||
path('register', register, name='register'),
|
||||
path('api/token', TokenObtainPairView.as_view(), name='token_obtain_pair'),
|
||||
|
@ -10,7 +10,7 @@ from .serializers import UserPasswordResetSerializer, UserPasswordResetConfirmSe
|
||||
from rest_framework.response import Response
|
||||
from django.shortcuts import render, redirect
|
||||
from django.template import loader
|
||||
from .forms import RegistrationForm
|
||||
from .forms import RegistrationForm, LoginForm
|
||||
from django.contrib.auth.forms import AuthenticationForm
|
||||
from django.contrib.auth import login as auth_login
|
||||
from config.authh import SettingsBackend
|
||||
@ -70,12 +70,6 @@ class UserPasswordResetConfirmView(PasswordResetConfirmShortcut, generics.Generi
|
||||
token_generator = default_token_generator
|
||||
|
||||
|
||||
def login(request):
|
||||
# context = {
|
||||
# 'latest_question_list': latest_question_list,
|
||||
# }
|
||||
return render(request, 'login.html')
|
||||
|
||||
def logout(request):
|
||||
# context = {
|
||||
# 'latest_question_list': latest_question_list,
|
||||
@ -109,7 +103,29 @@ def login_success(request):
|
||||
return render(request, 'great.html')
|
||||
|
||||
|
||||
def loginn(request):
|
||||
def login2(request):
|
||||
context = {}
|
||||
if request.POST:
|
||||
form = LoginForm(request.POST)
|
||||
if form.is_valid():
|
||||
email = form.cleaned_data["email"],
|
||||
password = form.cleaned_data["password1"]
|
||||
# username = request.POST.get("email")
|
||||
# password = request.POST.get("password")
|
||||
user = SettingsBackend().authenticate(request, email=email, password=password)
|
||||
if user is not None:
|
||||
auth_login(request, user)
|
||||
return redirect('home')
|
||||
else:
|
||||
context['login_form'] = form
|
||||
else:
|
||||
form = LoginForm()
|
||||
context['login_form'] = form
|
||||
return render(request, 'login2.html', context)
|
||||
|
||||
|
||||
def login(request):
|
||||
context = {}
|
||||
if request.POST:
|
||||
username = request.POST.get("username")
|
||||
password = request.POST.get("password")
|
||||
@ -117,5 +133,5 @@ def loginn(request):
|
||||
user = SettingsBackend().authenticate(request, email=username, password=password)
|
||||
if user is not None:
|
||||
auth_login(request, user)
|
||||
context = {}
|
||||
return redirect('home')
|
||||
return render(request, 'login.html', context)
|
||||
|
Loading…
Reference in New Issue
Block a user