Guest User

Untitled

a guest
Feb 1st, 2023
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.73 KB | None | 0 0
  1. from django.shortcuts import render, redirect
  2. from .models import Topic, Post, User
  3. from django.contrib.auth.forms import UserCreationForm
  4. from django.contrib.auth.models import BaseUserManager
  5. from django.contrib.auth import get_user_model
  6. from django.contrib.auth import authenticate, login, logout
  7. from .forms import CustomUserCreationForm
  8. from django.contrib.sites.shortcuts import get_current_site
  9. from django.template.loader import render_to_string
  10. from django.utils.http import urlsafe_base64_decode, urlsafe_base64_encode
  11. from django.utils.encoding import force_bytes, force_str, DjangoUnicodeDecodeError
  12. from .utils import generate_token
  13. from django.core.mail import EmailMessage
  14. from django.conf import settings
  15.  
  16. # Create your views here.
  17.  
  18.  
  19. User = get_user_model()
  20.  
  21. def send_activation_email(user, request):
  22. current_site = get_current_site(request)
  23. email_subject = "Activation Email"
  24. context = {"user": user,
  25. "domain": current_site,
  26. 'uid': urlsafe_base64_encode(force_bytes(user.pk)),
  27. 'token': generate_token.make_token(user)
  28. }
  29. email_body = render_to_string('email/activate.html',context)
  30.  
  31. email = EmailMessage(subject=email_subject, body=email_body, from_email=settings.EMAIL_FROM_USER, to=[user.email])
  32.  
  33. email.send()
  34.  
  35.  
  36.  
  37. def home(request):
  38. rules_posts = Post.objects.filter(front_sticky='RU')
  39. community_topics = Topic.objects.filter(front_sticky='CO')
  40. darkRP_topics = Topic.objects.filter(front_sticky="DR")
  41. millitaryRP_topics = Topic.objects.filter(front_sticky='MR')
  42. prisonRP_topics = Topic.objects.filter(front_sticky='PR')
  43.  
  44. context = {"rules_posts": rules_posts, "community_topics": community_topics, "darkRP_topics": darkRP_topics,
  45. "millitaryRP_topics": millitaryRP_topics, "prisonRP_topics": prisonRP_topics}
  46.  
  47. return render(request, 'base/home.html', context)
  48.  
  49. def post(request, pk):
  50. post = Post.objects.get(id=pk)
  51.  
  52. context = {"post": post}
  53.  
  54. return render(request, 'base/post.html', context)
  55.  
  56. def browse(request):
  57.  
  58. t = request.GET.get('t')
  59.  
  60. if t == None:
  61. return redirect('home')
  62.  
  63. topics = Topic.objects.filter(parrent_topic=t)
  64. posts = Post.objects.filter(topic=t)
  65.  
  66. context = {"topics": topics, "posts": posts}
  67.  
  68. return render(request, 'base/browse.html', context)
  69.  
  70. def register_user(request):
  71. page = "register"
  72. form = CustomUserCreationForm(request.POST)
  73. if request.method == "POST":
  74. if form.is_valid():
  75. if form.is_valid():
  76. user = form.save()
  77. login(request, user)
  78. send_activation_email(user, request)
  79. return redirect('home')
  80.  
  81.  
  82. context = {"form": form, "page": page}
  83.  
  84. return render(request, 'base/register_login.html', context)
  85.  
  86. def login_user(request):
  87. page = "login"
  88.  
  89. if request.user.is_authenticated:
  90. return redirect('home')
  91.  
  92. if request.method == "POST":
  93. email = BaseUserManager.normalize_email(request.POST.get('email'))
  94. password = request.POST.get('password')
  95. user = authenticate(request, email=email, password=password)
  96.  
  97. if user:
  98. login(request, user)
  99.  
  100. context = {"page": page}
  101.  
  102. return render(request, 'base/register_login.html', context)
  103.  
  104. def logout_user(request):
  105. logout(request)
  106. return redirect('home')
  107.  
  108. def activate_user(request, uidb64, token):
  109. try:
  110. uid = force_str(urlsafe_base64_decode(uidb64))
  111.  
  112. user = User.objects.get(pk=uid)
  113.  
  114. except Exception as e:
  115. user=None
  116.  
  117. if user and generate_token.check_token(user, token):
  118. user.is_verified=True
  119. user.save()
Add Comment
Please, Sign In to add comment