Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.shortcuts import render, redirect
- from .models import Topic, Post, User
- from django.contrib.auth.forms import UserCreationForm
- from django.contrib.auth.models import BaseUserManager
- from django.contrib.auth import get_user_model
- from django.contrib.auth import authenticate, login, logout
- from .forms import CustomUserCreationForm
- from django.contrib.sites.shortcuts import get_current_site
- from django.template.loader import render_to_string
- from django.utils.http import urlsafe_base64_decode, urlsafe_base64_encode
- from django.utils.encoding import force_bytes, force_str, DjangoUnicodeDecodeError
- from .utils import generate_token
- from django.core.mail import EmailMessage
- from django.conf import settings
- # Create your views here.
- User = get_user_model()
- def send_activation_email(user, request):
- current_site = get_current_site(request)
- email_subject = "Activation Email"
- context = {"user": user,
- "domain": current_site,
- 'uid': urlsafe_base64_encode(force_bytes(user.pk)),
- 'token': generate_token.make_token(user)
- }
- email_body = render_to_string('email/activate.html',context)
- email = EmailMessage(subject=email_subject, body=email_body, from_email=settings.EMAIL_FROM_USER, to=[user.email])
- email.send()
- def home(request):
- rules_posts = Post.objects.filter(front_sticky='RU')
- community_topics = Topic.objects.filter(front_sticky='CO')
- darkRP_topics = Topic.objects.filter(front_sticky="DR")
- millitaryRP_topics = Topic.objects.filter(front_sticky='MR')
- prisonRP_topics = Topic.objects.filter(front_sticky='PR')
- context = {"rules_posts": rules_posts, "community_topics": community_topics, "darkRP_topics": darkRP_topics,
- "millitaryRP_topics": millitaryRP_topics, "prisonRP_topics": prisonRP_topics}
- return render(request, 'base/home.html', context)
- def post(request, pk):
- post = Post.objects.get(id=pk)
- context = {"post": post}
- return render(request, 'base/post.html', context)
- def browse(request):
- t = request.GET.get('t')
- if t == None:
- return redirect('home')
- topics = Topic.objects.filter(parrent_topic=t)
- posts = Post.objects.filter(topic=t)
- context = {"topics": topics, "posts": posts}
- return render(request, 'base/browse.html', context)
- def register_user(request):
- page = "register"
- form = CustomUserCreationForm(request.POST)
- if request.method == "POST":
- if form.is_valid():
- if form.is_valid():
- user = form.save()
- login(request, user)
- send_activation_email(user, request)
- return redirect('home')
- context = {"form": form, "page": page}
- return render(request, 'base/register_login.html', context)
- def login_user(request):
- page = "login"
- if request.user.is_authenticated:
- return redirect('home')
- if request.method == "POST":
- email = BaseUserManager.normalize_email(request.POST.get('email'))
- password = request.POST.get('password')
- user = authenticate(request, email=email, password=password)
- if user:
- login(request, user)
- context = {"page": page}
- return render(request, 'base/register_login.html', context)
- def logout_user(request):
- logout(request)
- return redirect('home')
- def activate_user(request, uidb64, token):
- try:
- uid = force_str(urlsafe_base64_decode(uidb64))
- user = User.objects.get(pk=uid)
- except Exception as e:
- user=None
- if user and generate_token.check_token(user, token):
- user.is_verified=True
- user.save()
Add Comment
Please, Sign In to add comment