mirror of
https://gitlab.science.ru.nl/technicie/MarietjeDjango.git
synced 2025-12-11 08:52:21 +01:00
Add informative messages for registration and password resetting.
This commit is contained in:
committed by
Daan Sprenkels
parent
f6492a70df
commit
5ce5dc5587
@ -150,3 +150,5 @@ MAX_MINUTES_IN_A_ROW = 20
|
|||||||
# Time range (dependent on timezone specified) when MAX_MINUTES_IN_A_ROW is in effect.
|
# Time range (dependent on timezone specified) when MAX_MINUTES_IN_A_ROW is in effect.
|
||||||
LIMIT_ALWAYS = False
|
LIMIT_ALWAYS = False
|
||||||
LIMIT_HOURS = (12, 16)
|
LIMIT_HOURS = (12, 16)
|
||||||
|
|
||||||
|
CONTACT_EMAIL = 'marietje@science.ru.nl'
|
||||||
|
|||||||
@ -59,6 +59,14 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if messages %}
|
||||||
|
{% for message in messages %}
|
||||||
|
<div class="alert alert-{{ message.extra_tags }} alert-dismissable">
|
||||||
|
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||||
|
{{ message }}
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
{% block content %}{% endblock content %}
|
{% block content %}{% endblock content %}
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@ -1,11 +1,15 @@
|
|||||||
import random, string
|
import random
|
||||||
from django.shortcuts import render, redirect, get_object_or_404
|
import string
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
from django.contrib import messages
|
||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
from django.core.mail import send_mail
|
from django.core.mail import send_mail
|
||||||
from django.conf import settings
|
from django.shortcuts import render, redirect, get_object_or_404
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from .forms import RegistrationForm, ResetPasswordForm
|
|
||||||
from marietje.utils import get_first_queue
|
from marietje.utils import get_first_queue
|
||||||
|
from .forms import RegistrationForm, ResetPasswordForm
|
||||||
|
|
||||||
|
|
||||||
def register(request):
|
def register(request):
|
||||||
@ -31,8 +35,9 @@ def register(request):
|
|||||||
'Please confirm your account by following this link: ' + activation_link,
|
'Please confirm your account by following this link: ' + activation_link,
|
||||||
settings.MAIL_FROM,
|
settings.MAIL_FROM,
|
||||||
[user.email],
|
[user.email],
|
||||||
fail_silently=True
|
fail_silently=True)
|
||||||
)
|
messages.add_message(request, messages.INFO, 'Please check your email, ' + user.email + ', for activation.',
|
||||||
|
extra_tags='info')
|
||||||
return redirect('login')
|
return redirect('login')
|
||||||
|
|
||||||
|
|
||||||
@ -42,6 +47,10 @@ def activate(request, user_id, token):
|
|||||||
if token == user.activation_token:
|
if token == user.activation_token:
|
||||||
user.activation_token = None
|
user.activation_token = None
|
||||||
user.save()
|
user.save()
|
||||||
|
messages.add_message(request, messages.SUCCESS, 'Successfully activated.', extra_tags='success')
|
||||||
|
else:
|
||||||
|
messages.add_message(request, messages.ERROR, 'Activation failed. If the problem persists, please contact '
|
||||||
|
+ settings.CONTACT_EMAIL + '.', extra_tags='danger')
|
||||||
return redirect('login')
|
return redirect('login')
|
||||||
|
|
||||||
|
|
||||||
@ -52,6 +61,7 @@ def forgotpassword(request):
|
|||||||
User = get_user_model()
|
User = get_user_model()
|
||||||
user = User.objects.filter(username=request.POST.get('email')).first()
|
user = User.objects.filter(username=request.POST.get('email')).first()
|
||||||
if user is None or user.activation_token:
|
if user is None or user.activation_token:
|
||||||
|
messages.add_message(request, messages.ERROR, 'No (active) user found.', extra_tags='danger')
|
||||||
return render(request, 'registration/forgotpassword.html')
|
return render(request, 'registration/forgotpassword.html')
|
||||||
|
|
||||||
user.reset_token = ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(32))
|
user.reset_token = ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(32))
|
||||||
@ -63,8 +73,9 @@ def forgotpassword(request):
|
|||||||
+ reset_link + '\nIf you did not request to reset your password, you can ignore this email.',
|
+ reset_link + '\nIf you did not request to reset your password, you can ignore this email.',
|
||||||
settings.MAIL_FROM,
|
settings.MAIL_FROM,
|
||||||
[user.email],
|
[user.email],
|
||||||
fail_silently=True
|
fail_silently=True)
|
||||||
)
|
messages.add_message(request, messages.INFO, 'Please check your email, ' + user.email
|
||||||
|
+ ', for resetting your password.', extra_tags='info')
|
||||||
return redirect('login')
|
return redirect('login')
|
||||||
|
|
||||||
|
|
||||||
@ -72,6 +83,7 @@ def resetpassword(request, user_id, token):
|
|||||||
User = get_user_model()
|
User = get_user_model()
|
||||||
user = get_object_or_404(User, pk=user_id)
|
user = get_object_or_404(User, pk=user_id)
|
||||||
if not user.reset_token or token != user.reset_token:
|
if not user.reset_token or token != user.reset_token:
|
||||||
|
messages.add_message(request, messages.ERROR, 'Invalid password reset link.', extra_tags='danger')
|
||||||
return redirect('login')
|
return redirect('login')
|
||||||
if not request.POST:
|
if not request.POST:
|
||||||
return render(request, 'registration/resetpassword.html', {'user_id': user.id, 'reset_token': token})
|
return render(request, 'registration/resetpassword.html', {'user_id': user.id, 'reset_token': token})
|
||||||
@ -79,9 +91,11 @@ def resetpassword(request, user_id, token):
|
|||||||
form = ResetPasswordForm(request.POST)
|
form = ResetPasswordForm(request.POST)
|
||||||
|
|
||||||
if not form.is_valid():
|
if not form.is_valid():
|
||||||
return render(request, 'registration/resetpassword.html', {'user_id': user.id, 'reset_token': token, 'form': form})
|
return render(request, 'registration/resetpassword.html', {'user_id': user.id, 'reset_token': token,
|
||||||
|
'form': form})
|
||||||
|
|
||||||
user.reset_token = None
|
user.reset_token = None
|
||||||
user.set_password(form.cleaned_data['password1'])
|
user.set_password(form.cleaned_data['password1'])
|
||||||
user.save()
|
user.save()
|
||||||
|
messages.add_message(request, messages.SUCCESS, 'Your password has been reset.', extra_tags='success')
|
||||||
return redirect('login')
|
return redirect('login')
|
||||||
|
|||||||
Reference in New Issue
Block a user