forked from 42CTF/website
Merge branch 'Yir-registration-failed-restore'
This commit is contained in:
commit
4245cfd19f
|
@ -2,42 +2,42 @@
|
|||
{% block content %}
|
||||
{% load i18n %}
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-9">
|
||||
<div class="ctf-block">
|
||||
<div class="ctf-head">
|
||||
<h3>Register</h3>
|
||||
</div>
|
||||
<div class="ctf-body sign-body">
|
||||
<div class="col-sm-8 col-md-6 mx-auto">
|
||||
{% if registered %}
|
||||
<h1>{% trans "Welcome !" %}</h1>
|
||||
<span class="message success-msg">{% trans "Your account has been created." %}</span>
|
||||
{% else %}
|
||||
{% if registered_failed %}
|
||||
<span class="message error-msg">{{ registered_failed }}</span>
|
||||
{% endif %}
|
||||
<form enctype="multipart/form-data" method="POST">
|
||||
{% csrf_token %}
|
||||
<div class="form-group">
|
||||
<input class="form-control" type="text" name="username" placeholder="{% trans "Username" %} *" maxlength="150" required="" id="id_username"></br>
|
||||
<input class="form-control" type="password" name="password" placeholder="{% trans "Password" %} *" required="" id="id_password"></br>
|
||||
<input class="form-control" type="email" name="email" placeholder="pleasedontgivemy@private.infos*" required="" maxlength="254" id="id_email"></br>
|
||||
<input class="form-control" type="url" name="portfolio_site" placeholder="{% trans "Personal website" %}"maxlength="200" id="id_portfolio_site"></br>
|
||||
<input type="submit" name="" class="form-control" value="{% trans "Register" %}">
|
||||
</div>
|
||||
</form>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-9">
|
||||
<div class="ctf-block">
|
||||
<div class="ctf-head">
|
||||
<h3>Register</h3>
|
||||
</div>
|
||||
|
||||
<div class="ctf-body sign-body">
|
||||
<div class="col-sm-8 col-md-6 mx-auto">
|
||||
{% if registered %}
|
||||
<h1>{% trans "Welcome !" %}</h1>
|
||||
<span class="message success-msg">{% trans "Your account has been created." %}</span>
|
||||
{% else %}
|
||||
{% if registered_failed %}
|
||||
<span class="message error-msg">{{ registered_failed }}</span>
|
||||
{% endif %}
|
||||
<form enctype="multipart/form-data" method="POST">
|
||||
{% csrf_token %}
|
||||
<div class="form-group">
|
||||
<input class="form-control" type="text" name="username" placeholder="{% trans "Username" %} *" maxlength="150" required="" id="id_username" value="{{ old_username }}"></br>
|
||||
<input class="form-control" type="password" name="password" placeholder="{% trans "Password" %} *" required="" id="id_password"></br>
|
||||
<input class="form-control" type="email" name="email" placeholder="pleasedontgivemy@private.infos*" required="" maxlength="254" id="id_email" value="{{ old_email }}"></br>
|
||||
<input class="form-control" type="url" name="portfolio_site" placeholder="{% trans "Personal website" %}"maxlength="200" id="id_portfolio_site" value="{{ old_website }}"></br>
|
||||
<input type="submit" name="" class="form-control" value="{% trans "Register" %}">
|
||||
</div>
|
||||
</form>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-3 right-sidebar">
|
||||
<ul class="list-group">
|
||||
<a href="/accounts/signup" class="list-group-item">{% trans "Sign up" %}</a>
|
||||
<a href="/accounts/signin" class="list-group-item">{% trans "Login" %}</a>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-12 col-md-3 right-sidebar">
|
||||
<ul class="list-group">
|
||||
<a href="/accounts/signup" class="list-group-item">{% trans "Sign up" %}</a>
|
||||
<a href="/accounts/signin" class="list-group-item">{% trans "Login" %}</a>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
|
|
|
@ -43,32 +43,69 @@ def signup(request):
|
|||
user_form = UserForm()
|
||||
profile_form = UserProfileInfoForm()
|
||||
registered = False
|
||||
|
||||
if request.method == 'POST':
|
||||
pass1 = request.POST.get('password')
|
||||
if len(pass1) < 8:
|
||||
return render(request,'accounts/register.html', {'user_form':user_form, 'profile_form':profile_form, 'registered_failed':"The new password must be at least %d characters long." % 8})
|
||||
first_isalpha = pass1[0].isalpha()
|
||||
if not any(c.isdigit() for c in pass1) or not any(c.isalpha() for c in pass1):
|
||||
return render(request,'accounts/register.html', {'user_form':user_form, 'profile_form':profile_form, 'registered_failed':_("The password must contain at least one letter and at least one digit or punctuation character.")})
|
||||
username = request.POST.get('username')
|
||||
passwd = request.POST.get('password')
|
||||
email = request.POST.get('email')
|
||||
website = request.POST.get('portfolio_site')
|
||||
|
||||
if len(passwd) < 8:
|
||||
return render(request, 'accounts/register.html', {
|
||||
'user_form': user_form,
|
||||
'profile_form': profile_form,
|
||||
'registered_failed': _("The password must be at least 8 characters long."),
|
||||
'old_username': username,
|
||||
'old_email': email,
|
||||
'old_website': website
|
||||
})
|
||||
|
||||
if not any(c.isdigit() for c in passwd) or not any(c.isalpha() for c in passwd):
|
||||
return render(request, 'accounts/register.html', {
|
||||
'user_form': user_form,
|
||||
'profile_form': profile_form,
|
||||
'registered_failed': _("The password must contain at least one letter and at least one digit or punctuation character."),
|
||||
'old_username': username,
|
||||
'old_email': email,
|
||||
'old_website': website
|
||||
})
|
||||
|
||||
if User.objects.filter(email=request.POST.get('email')).exists():
|
||||
return render(request,'accounts/register.html', {'user_form':user_form, 'profile_form':profile_form, 'registered_failed':_("A user with that email already exists.")})
|
||||
return render(request, 'accounts/register.html', {
|
||||
'user_form': user_form,
|
||||
'profile_form': profile_form,
|
||||
'registered_failed': _("A user with that email already exists."),
|
||||
'old_username': username,
|
||||
'old_website': website
|
||||
})
|
||||
|
||||
user_form = UserForm(data=request.POST)
|
||||
profile_form = UserProfileInfoForm(data=request.POST)
|
||||
if user_form.is_valid() and profile_form.is_valid():
|
||||
user = user_form.save()
|
||||
user.set_password(user.password)
|
||||
user.save()
|
||||
|
||||
profile = profile_form.save(commit=False)
|
||||
profile.user = user
|
||||
profile.token = token_hex(16)
|
||||
profile.save()
|
||||
|
||||
registered = True
|
||||
else:
|
||||
return render(request,'accounts/register.html', {'user_form':user_form, 'profile_form':profile_form, 'registered_failed':_("A user with that username already exists.")})
|
||||
return render(request,'accounts/register.html',
|
||||
{'user_form':user_form,
|
||||
'profile_form':profile_form,
|
||||
'registered':registered})
|
||||
return render(request, 'accounts/register.html', {
|
||||
'user_form': user_form,
|
||||
'profile_form': profile_form,
|
||||
'registered_failed': _("A user with that username already exists."),
|
||||
'old_email': email,
|
||||
'old_website': website
|
||||
})
|
||||
|
||||
return render(request, 'accounts/register.html', {
|
||||
'user_form': user_form,
|
||||
'profile_form': profile_form,
|
||||
'registered': registered
|
||||
})
|
||||
else:
|
||||
return HttpResponseRedirect(reverse('home'))
|
||||
|
||||
|
|
Loading…
Reference in New Issue