from django.views.generic import TemplateView
from django.shortcuts import render, redirect
from django.http import HttpResponse
from django.contrib.auth.mixins import LoginRequiredMixin
[docs]class IndexView(TemplateView):
template_name = 'index.html'
[docs]class JbrowserView(LoginRequiredMixin, TemplateView):
login_url = '/login'
template_name = 'Jbrowser.html'
[docs]class TsarpView(LoginRequiredMixin, TemplateView):
login_url = '/login'
template_name = 'tsarp.html'
[docs]class UsageView(TemplateView):
template_name = 'usage.html'
[docs]class DocView(TemplateView):
template_name = 'docs/build/html/index.html'
from django.urls import reverse_lazy
from django.contrib.auth.views import PasswordResetView
from django.contrib.messages.views import SuccessMessageMixin
[docs]class ResetPasswordView(SuccessMessageMixin, PasswordResetView):
template_name = 'password_reset.html'
email_template_name = 'password_reset_email.html'
subject_template_name = 'password_reset_subject'
success_url = reverse_lazy('users-home')
from django.contrib.auth.models import User
from django.contrib import auth, messages
from django.contrib.auth.forms import AuthenticationForm
[docs]def register(request):
if request.method == 'POST':
# form = AuthenticationForm(request=request, data=request.POST)
# if not form.is_valid():
# return render(request, 'signup.html')
username = request.POST.get('username')
password = request.POST.get('password')
email = request.POST.get('email')
password_confirm = request.POST.get('password_confirm')
# if existed
if password == password_confirm:
if User.objects.filter(username=username).first():
messages.error(request, "This username is already taken")
return render(request, 'signup.html')
# new username
user = User.objects.create_user(username=username, email=email, password=password)
user.save()
if user:
auth.login(request, user)
name = request.user.username
return render(request, 'index.html', {'name':name})
else:
return render(request, 'signup.html')
else:
return render(request, 'signup.html')
return render(request, 'signup.html')
[docs]def login(request):
# when login then click button again log out
if request.user.is_authenticated:
auth.logout(request)
return render(request, 'index.html')
if request.method == "POST":
username = request.POST.get('username')
password = request.POST.get('password')
user = auth.authenticate(username=username, password=password)
if user:
auth.login(request, user)
name = request.user.username
return render(request, 'index.html', {'name':name})
return render(request, "signin.html")
[docs]def logout(request):
auth.logout(request)
return redirect('index')
[docs]def password_reset_complete(request):
if request.method == 'POST':
form = AuthenticationForm(request=request, data=request.POST)
if not form.is_valid():
return render(request, 'password_reset.html')
username = request.POST.get('username')
password1 = request.POST.get('password1')
password2 = request.POST.get('password2')
# confirmed
if password1 == password2:
user = User.objects.get(username =username)
user.set_password(password1)
user.save()
if user:
auth.login(request, user)
name = request.user.username
return render(request, 'signin.html')
else:
return render(request, 'password_reset.html')
else:
return render(request, 'password_reset.html')
return render(request, 'signup.html')