import types
import datetime
-from forum.authentication.forms import SimpleRegistrationForm, SimpleEmailSubscribeForm, \
+from forum.forms import SimpleRegistrationForm, SimpleEmailSubscribeForm, \
TemporaryLoginRequestForm, ChangePasswordForm, SetPasswordForm
-from forum.utils.mail import send_email
+from forum.utils.mail import send_email, send_template_email
from forum.authentication.base import InvalidAuthentication
from forum.authentication import AUTH_PROVIDERS
user_.save()
UserJoinsAction(user=user_, ip=request.META['REMOTE_ADDR']).save()
- if not user_.email_isvalid:
- send_validation_email(user_)
-
try:
assoc_key = request.session['assoc_key']
auth_provider = request.session['auth_provider']
del request.session['assoc_key']
del request.session['auth_provider']
- return login_and_forward(request, user_)
+ return login_and_forward(request, user_, message=_("A welcome email has been sent to your email address. "))
else:
provider_class = AUTH_PROVIDERS[request.session['auth_provider']].consumer
user_data = provider_class.get_user_data(request.session['assoc_key'])
except:
hash = ValidationHash.objects.create_new(user, 'templogin', [user.id])
- send_email(_("Temporary login link"), [(user.username, user.email)], "auth/temp_login_email.html", {
- 'temp_login_code': hash,
- 'user': user
- })
+ send_template_email([user], "auth/temp_login_email.html", {'temp_login_code': hash})
request.user.message_set.create(message=_("An email has been sent with your temporary login key"))
_("You are logged in with a temporary access key, please take the time to fix your issue with authentication."))
else:
raise Http404()
-
-def send_validation_email(user):
- hash = ValidationHash.objects.create_new(user, 'email', [user.email])
- send_email(_("Email Validation"), [(user.username, user.email)], "auth/email_validation.html", {
- 'validation_code': hash,
- 'user': user
- })
-
+
def validate_email(request, user, code):
user = get_object_or_404(User, id=user)
auth_keys = user_.auth_keys.all()
- if user_.has_usable_password():
- FormClass = ChangePasswordForm
- else:
+ if request.user.is_superuser or (not user_.has_usable_password()):
FormClass = SetPasswordForm
+ else:
+ FormClass = ChangePasswordForm
if request.POST:
form = FormClass(request.POST, user=user_)
if form.is_valid():
- if user_.has_usable_password():
- request.user.message_set.create(message=_("Your password was changed"))
- else:
- request.user.message_set.create(message=_("New password set"))
- FormClass = ChangePasswordForm
-
+ is_new_pass = not user_.has_usable_password()
user_.set_password(form.cleaned_data['password1'])
user_.save()
+
+ if is_new_pass:
+ request.user.message_set.create(message=_("New password set"))
+ if not request.user.is_superuser:
+ form = ChangePasswordForm(user=user_)
+ else:
+ request.user.message_set.create(message=_("Your password was changed"))
+
return HttpResponseRedirect(reverse('user_authsettings', kwargs={'id': user_.id}))
-
- form = FormClass(user=user_)
+ else:
+ form = FormClass(user=user_)
auth_keys_list = []