Source code for TSARP.views

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')