From 3b6db69346ba6a787018b36517f3b628d8eba4a3 Mon Sep 17 00:00:00 2001 From: Michael Madden Date: Mon, 8 Feb 2021 21:07:00 -0500 Subject: [PATCH 1/8] closes #123 --- project-templates/staff/profiles/users.html | 5 ++- staff/urls.py | 1 + staff/views/users.py | 39 ++++++++++++++++++--- 3 files changed, 40 insertions(+), 5 deletions(-) diff --git a/project-templates/staff/profiles/users.html b/project-templates/staff/profiles/users.html index 9ab837b11..b3a5af136 100644 --- a/project-templates/staff/profiles/users.html +++ b/project-templates/staff/profiles/users.html @@ -54,8 +54,11 @@ {% if verification %} {% if not up.user_verified %} - Verify User + Force Verify + User + Resend verification email {% else %} Unverify User diff --git a/staff/urls.py b/staff/urls.py index 294d7aa55..1d5f96da1 100644 --- a/staff/urls.py +++ b/staff/urls.py @@ -38,6 +38,7 @@ path('users/search/', login_required(views.searchusers), name='searchusers'), path('users/modify//', login_required(views.modifyuser), name='modify_user'), path('users//', login_required(views.userdetail), name='userdetail'), + path('users//resend_verify_email/', login_required(views.resend_verify_email), name='resend_verify_email'), path('users/verify//', login_required(views.verify), name='verify_user'), path('tournaments/', login_required(views.tournaments), name='tournamentlist'), diff --git a/staff/views/users.py b/staff/views/users.py index b78fb9424..0ccf1684d 100644 --- a/staff/views/users.py +++ b/staff/views/users.py @@ -1,8 +1,14 @@ -from django.contrib import messages -from django.conf import settings from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger -from django.shortcuts import render, redirect - +from django.conf import settings +from django.contrib import messages +from django.contrib.sites.shortcuts import get_current_site +from django.core.mail import EmailMessage +from django.shortcuts import render, redirect, get_object_or_404 +from django.template.loader import render_to_string +from django.utils.encoding import force_bytes, force_text +from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode, is_safe_url + +from profiles.tokens import account_activation_token from profiles.models import BannedUser from staff.forms import * from wagers.models import * @@ -170,6 +176,31 @@ def userdetail(request, urlusername): return render(request, 'staff/profiles/user_detail.html', {'userprofile': userprofile}) +def resend_verify_email(request, urlusername): + user = UserProfile.objects.get(user__username=request.user.username) + allowed = ['superadmin', 'admin'] + if user.user_type not in allowed: + return render(request, 'staff/permissiondenied.html') + else: + # should be a get request + user = User.objects.get(username=urlusername) + current_site = get_current_site(request) + mail_subject = 'Activate your ' + settings.SITE_NAME + ' account.' + message = render_to_string('profiles/activate_email.html', { + 'user': user, + 'domain': current_site.domain, + 'uid': urlsafe_base64_encode(force_bytes(user.pk)), + 'token': account_activation_token.make_token(user), + }) + to_email = user.email + email = EmailMessage( + mail_subject, message, from_email=settings.FROM_EMAIL, to=[to_email] + ) + email.send() + messages.success(request, "Resent verification email") + return redirect('staff:users') + + def verify(request, urlusername): user = UserProfile.objects.get(user__username=request.user.username) allowed = ['superadmin', 'admin'] From 11d04b3760782bf4605c20f35d1b435cb19bf9df Mon Sep 17 00:00:00 2001 From: Michael Madden Date: Mon, 8 Feb 2021 21:07:08 -0500 Subject: [PATCH 2/8] pep8 --- project-templates/staff/profiles/users.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/project-templates/staff/profiles/users.html b/project-templates/staff/profiles/users.html index b3a5af136..f870f8cbf 100644 --- a/project-templates/staff/profiles/users.html +++ b/project-templates/staff/profiles/users.html @@ -70,6 +70,8 @@ {% include "pagination.html" with page=userprofiles %} Calculate rank for all users - Reset XP for all users + Reset XP for all users {% endblock %} \ No newline at end of file From 5e0caa4d26509a94355a1582a9fc24284b106649 Mon Sep 17 00:00:00 2001 From: Michael Madden Date: Mon, 8 Feb 2021 21:07:36 -0500 Subject: [PATCH 3/8] formatting adjustments, add placeholder image --- project-static/images/game-placeholder.jpg | Bin 0 -> 32569 bytes project-templates/matches/match_detail.html | 6 ++++-- 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 project-static/images/game-placeholder.jpg diff --git a/project-static/images/game-placeholder.jpg b/project-static/images/game-placeholder.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6bb9935d997de3863b2a7a08e1f2428d2cf2f986 GIT binary patch literal 32569 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