Merged in [19858] from rjsparks@nostrum.com:

Remove the manual intervention step for account creation.
 - Legacy-Id: 19860
Note: SVN reference [19858] has been migrated to Git commit f7a9e0a1f9
This commit is contained in:
Robert Sparks 2022-01-19 18:21:05 +00:00
commit 4985bb04f4
2 changed files with 40 additions and 20 deletions

View file

@ -27,6 +27,7 @@ from urllib.parse import urlsplit
from django.urls import reverse as urlreverse
from django.contrib.auth.models import User
from django.conf import settings
from django.template.loader import render_to_string
import debug # pyflakes:ignore
@ -138,20 +139,26 @@ class IetfAuthTests(TestCase):
return False
def test_create_account_failure(self):
# For the lowered barrier to account creation period, we are disabling this kind of failure
# def test_create_account_failure(self):
url = urlreverse(ietf.ietfauth.views.create_account)
# url = urlreverse(ietf.ietfauth.views.create_account)
# get
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
# # get
# r = self.client.get(url)
# self.assertEqual(r.status_code, 200)
# register email and verify failure
email = 'new-account@example.com'
empty_outbox()
r = self.client.post(url, { 'email': email })
self.assertEqual(r.status_code, 200)
self.assertContains(r, "Additional Assistance Required")
# # register email and verify failure
# email = 'new-account@example.com'
# empty_outbox()
# r = self.client.post(url, { 'email': email })
# self.assertEqual(r.status_code, 200)
# self.assertContains(r, "Additional Assistance Required")
# Rather than delete the failure template just yet, here's a test to make sure it still renders should we need to revert to it.
def test_create_account_failure_template(self):
r = render_to_string('registration/manual.html', { 'account_request_email': settings.ACCOUNT_REQUEST_EMAIL })
self.assertTrue("Additional Assistance Required" in r)
def register_and_verify(self, email):
url = urlreverse(ietf.ietfauth.views.create_account)

View file

@ -36,7 +36,9 @@
import importlib
from datetime import datetime as DateTime, timedelta as TimeDelta, date as Date
from datetime import date as Date
# needed if we revert to higher barrier for account creation
#from datetime import datetime as DateTime, timedelta as TimeDelta, date as Date
from collections import defaultdict
import django.core.signing
@ -65,7 +67,9 @@ from ietf.ietfauth.forms import ( RegistrationForm, PasswordForm, ResetPasswordF
NewEmailForm, ChangeUsernameForm, PersonPasswordForm)
from ietf.ietfauth.htpasswd import update_htpasswd_file
from ietf.ietfauth.utils import role_required, has_role
from ietf.mailinglists.models import Subscribed, Whitelisted
from ietf.mailinglists.models import Whitelisted
# needed if we revert to higher barrier for account creation
#from ietf.mailinglists.models import Subscribed, Whitelisted
from ietf.name.models import ExtResourceName
from ietf.nomcom.models import NomCom
from ietf.person.models import Person, Email, Alias, PersonalApiKey, PERSON_API_KEY_VALUES
@ -76,6 +80,9 @@ from ietf.utils.decorators import person_required
from ietf.utils.mail import send_mail
from ietf.utils.validators import validate_external_resource_value
# These are needed if we revert to the higher bar for account creation
def index(request):
return render(request, 'registration/index.html')
@ -114,13 +121,19 @@ def create_account(request):
form = RegistrationForm(request.POST)
if form.is_valid():
to_email = form.cleaned_data['email'] # This will be lowercase if form.is_valid()
existing = Subscribed.objects.filter(email=to_email).first()
ok_to_create = ( Whitelisted.objects.filter(email=to_email).exists()
or existing and (existing.time + TimeDelta(seconds=settings.LIST_ACCOUNT_DELAY)) < DateTime.now() )
if ok_to_create:
# For the IETF 113 Registration period (at least) we are lowering the barriers for account creation
# to the simple email round-trip check
send_account_creation_email(request, to_email)
else:
return render(request, 'registration/manual.html', { 'account_request_email': settings.ACCOUNT_REQUEST_EMAIL })
# The following is what to revert to should that lowered barrier prove problematic
# existing = Subscribed.objects.filter(email=to_email).first()
# ok_to_create = ( Whitelisted.objects.filter(email=to_email).exists()
# or existing and (existing.time + TimeDelta(seconds=settings.LIST_ACCOUNT_DELAY)) < DateTime.now() )
# if ok_to_create:
# send_account_creation_email(request, to_email)
# else:
# return render(request, 'registration/manual.html', { 'account_request_email': settings.ACCOUNT_REQUEST_EMAIL })
else:
form = RegistrationForm()