+
{{ match.platform.name }}
diff --git a/project-templates/staff/profiles/user_edit.html b/project-templates/staff/profiles/user_edit.html
index fdd308c9..587eea61 100644
--- a/project-templates/staff/profiles/user_edit.html
+++ b/project-templates/staff/profiles/user_edit.html
@@ -9,6 +9,18 @@
{% csrf_token %}
{{ field.errors }}
+
+ {{ form.alternate_name }}
+
+
+
+ {{ form.steamid64 }}
+
+
+
+ {{ form.discord }}
+
+
{{ form.num_bronze }}
diff --git a/project-templates/staff/profiles/users.html b/project-templates/staff/profiles/users.html
index 9ab837b1..7c55c00f 100644
--- a/project-templates/staff/profiles/users.html
+++ b/project-templates/staff/profiles/users.html
@@ -38,26 +38,36 @@
Standard User |
{% endif %}
-
Modify User |
+
Modify
+ User |
{% if up.user.id in bannedusernames %}
-
UNBAN USERNAME |
+
UNBAN
+ USERNAME |
{% else %}
-
BAN USERNAME |
+
BAN
+ USERNAME |
{% endif %}
{% if up.ip in bannedips %}
-
UNBAN IP |
+
UNBAN
+ IP |
{% else %}
-
BAN IP |
+
BAN IP
+ |
{% endif %}
{% if verification %}
{% if not up.user_verified %}
-
Verify User
+ |
+ Force Verify
+ User
|
+
Resend verification email |
{% else %}
-
Unverify User
+ |
+ Unverify User
|
{% endif %}
{% endif %}
@@ -67,6 +77,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
diff --git a/staff/forms.py b/staff/forms.py
index 465ecdd9..928e2ad5 100644
--- a/staff/forms.py
+++ b/staff/forms.py
@@ -205,7 +205,9 @@ class RemovePlayerFormPost(forms.Form):
class ModifyUserForm(forms.ModelForm):
class Meta:
model = UserProfile
- fields = ('num_bronze', 'num_silver', 'num_gold', 'current_earning', 'xp', 'credits', 'user_type')
+ fields = (
+ 'num_bronze', 'num_silver', 'num_gold', 'current_earning', 'xp', 'credits', 'user_type', 'alternate_name',
+ 'steamid64', 'discord')
class CreateProductForm(forms.ModelForm):
diff --git a/staff/urls.py b/staff/urls.py
index 294d7aa5..1d5f96da 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 b78fb942..0ccf1684 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']
diff --git a/teams/tests.py b/teams/tests.py
index 92936826..4e19f736 100644
--- a/teams/tests.py
+++ b/teams/tests.py
@@ -1,7 +1,8 @@
from django.test import TestCase, RequestFactory
-from .models import Team
+from .models import Team, TeamInvite
from django.contrib.auth.models import User
from .views import *
+from .forms import RemovePlayerFormPost
class TeamTestCase(TestCase):
@@ -55,3 +56,9 @@ def test_teamdetailview(self):
request.user = self.user
response = MyTeamDetailView.get(None, request, pk=self.team.id)
self.assertEqual(response.status_code, 200)
+
+ def test_teameditview(self):
+ request = self.factory.get('teams:edit', pk=self.team.id)
+ request.user = self.user
+ response = edit_team_view(request, pk=self.team.id)
+ self.assertEqual(response.status_code, 200)