def password_reset(request, form_class=PasswordResetForm): if 'POST' == request.method: form = form_class(request.POST) else: form = form_class() if form.is_valid(): user = UserModel.objects.get(email=form.cleaned_data['email']) url = 'http://%s%s' % (hostname, reverse('auth:password_change')) url = wrap_url(url, uid=user.id, onetime=False, action='password_change') args = {'domain': hostname, 'url': url, 'user': user} if email_template(user.email, 'account/mail/password_reset', **args): return message(request, _('Check the mail please')) else: return message( request, _('Unfortunately we could not send you email in current time. Please, try later' )) return { 'form': form, }
def email_change(request): if 'POST' == request.method: form = EmailChangeForm(request.POST) else: form = EmailChangeForm() if form.is_valid(): email = form.cleaned_data['email'] url = 'http://%s%s' % (hostname, reverse('auth:email_change_done')) url = wrap_url(url, uid=request.user.id, action='new_email', email=email) args = { 'domain': hostname, 'url': url, 'email': email, } if email_template(email, 'account/mail/email_change', **args): return message(request, _('Check the mail please')) else: return message( request, _('Unfortunately we could not send you email in current time. Please, try later' )) return { 'form': form, }
def registration(request, form_class=RegistrationForm): if not settings.ACCOUNT_REGISTRATION_ENABLED: return message(request, _('Sorry. Registration is disabled.')) if request.user.is_authenticated(): return message(request, _('You have to logout before registration')) if 'POST' == request.method: form = form_class(request.POST, request.FILES) else: form = form_class() if form.is_valid(): user = form.save() signals.account_created.send(None, user=user, request=request) password = form.cleaned_data['password'] if settings.ACCOUNT_ACTIVATION_REQUIRED: url = 'http://%s%s' % (hostname, reverse('auth:registration_complete')) url = wrap_url(url, uid=user.id, action='activation') params = { 'domain': hostname, 'login': user.username, 'url': url, 'password': password } if email_template(user.email, 'account/mail/activation_required', **params): return HttpResponseRedirect( reverse('auth:activation_required')) else: user.delete() return message( request, _('The error was occuried while sending email with activation code. Account was not created. Please, try later.' )) else: user.backend = 'django.contrib.auth.backends.ModelBackend' auth.login(request, user) args = {'domain': hostname, 'user': user, 'password': password} email_template(user.email, 'account/mail/registration_complete', **args) return redirect( reverse(settings.ACCOUNT_REGISTRATION_REDIRECT_URLNAME)) return { 'form': form, }
def email_change(request): if 'POST' == request.method: form = EmailChangeForm(request.POST) else: form = EmailChangeForm() if form.is_valid(): email = form.cleaned_data['email'] url = 'http://%s%s' % (hostname, reverse('auth_email_change_done')) url = wrap_url(url, uid=request.user.id, action='new_email', email=email) args = {'domain': hostname, 'url': url, 'email': email,} if email_template(email, 'account/mail/email_change', **args): return message(request, _('Check the mail please')) else: return message(request, _('Unfortunately we could not send you email in current time. Please, try later')) return {'form': form,}
def registration(request, form_class=RegistrationForm): if not settings.ACCOUNT_REGISTRATION_ENABLED: return message_view(request, _('Sorry. Registration is disabled.')) if request.user.is_authenticated(): return message_view(request, _('You have to logout before registration')) if 'POST' == request.method: form = form_class(request.POST, request.FILES) else: form = form_class() if form.is_valid(): if form.cleaned_data['username'].endswith('mesuchesy'): # handling a possible spam user registration 2019/03/25 return message_view(request, _('Sorry. Registration is disabled.')) user = form.save(request) user_signed_up.send(None, user=user, request=request) password = form.cleaned_data['password1'] hostname = Site.objects.get_current().domain if settings.ACCOUNT_ACTIVATION_REQUIRED: url = 'http://%s%s' % (hostname, reverse('registration_complete')) url = wrap_url(url, uid=user.id, action='activation') params = {'domain': hostname, 'login': user.username, 'url': url, 'password': password} if email_template(user.email, 'account/mail/activation_required', **params): next_url = reverse('activation_required') if form.cleaned_data.get('signup_ann', False): next_url += '?email=' + user.email return HttpResponseRedirect(next_url) else: user.delete() msg = ('The error was occuried while sending email ' 'with activation code. Account was not created. ' 'Please, try later.') return message_view(request, _(msg)) else: user.backend = 'django.contrib.auth.backends.ModelBackend' auth.login(request, user) args = {'domain': hostname, 'user': user, 'password': password} email_template(user.email, 'account/mail/registration_complete', **args) return redirect(reverse(settings.ACCOUNT_REGISTRATION_REDIRECT_URLNAME)) return {'form': form}
def password_reset(request, form_class=PasswordResetForm): if 'POST' == request.method: form = form_class(request.POST) else: form = form_class() if form.is_valid(): user = UserModel.objects.get(email=form.cleaned_data['email']) url = 'http://%s%s' % (hostname, reverse('auth_password_change')) url = wrap_url(url, uid=user.id, onetime=False, action='password_change') args = {'domain': hostname, 'url': url, 'user': user} if email_template(user.email, 'account/mail/password_reset', **args): return message(request, _('Check the mail please')) else: return message(request, _('''Unfortunately we could not send you email in current time. Please, try later''')) return {'form': form,}
def registration(request, form_class=RegistrationForm): if not REGISTRATION_ENABLED: return message(request, _('Sorry. Registration is disabled.')) if request.user.is_authenticated(): return message(request, _('You have to logout before registration')) if 'POST' == request.method: form = form_class(request.POST, request.FILES) else: form = form_class() if form.is_valid(): user = form.save() signals.account_created.send(None, user=user, request=request) password = form.cleaned_data['password'] if ACTIVATION_REQUIRED: url = 'http://%s%s' % (hostname, reverse('registration_complete')) url = wrap_url(url, uid=user.id, action='activation') params = {'domain': hostname, 'login': user.username, 'url': url, 'password': password} if email_template(user.email, 'account/mail/activation_required', **params): return HttpResponseRedirect(reverse('activation_required')) else: user.delete() return message(request, _('''The error was occuried while sending email with activation code. Account was not created. Please, try later.''')) else: user.backend = 'django.contrib.auth.backends.ModelBackend' auth.login(request, user) args = {'domain': hostname, 'user': user, 'password': password} email_template(user.email, 'account/mail/registration_complete', **args) return redirect(reverse(REGISTRATION_REDIRECT_URLNAME)) return {'form': form,}
def register_openid(request, template_name='auth/registration_form.html'): """ register an openid. If user is already a member he can associate its openid with its account. A new account could also be created and automatically associated to the openid. """ errors = None is_redirect = False next = clean_next(request.GET.get('next')) openid_ = request.session.get('openid', None) if not openid_: return HttpResponseRedirect(reverse('auth_login')) nickname = openid_.sreg.get('nickname', '') email = openid_.sreg.get('email', '') fullname = openid_.sreg.get('fullname', '') if fullname: _name = fullname.split(' ') lastname = _name[-1] firstname = ' '.join(_name[:-1]) else: lastname, firstname = '', '' form = RegistrationForm(initial={ 'username': nickname, 'email': email, 'password': UNUSABLE_PASSWORD_PREFIX, 'password_dup': UNUSABLE_PASSWORD_PREFIX, 'first_name': firstname, 'last_name': lastname, }) openid_form = OpenidVerifyForm(initial={ 'next': next, 'username': nickname, }, auto_id='openid_%s') if request.POST: just_completed = False if 'bnewaccount' in request.POST.keys(): form = RegistrationForm(data=request.POST) if form.is_valid(): is_redirect = True user = form.save() user.is_active = False # set inactive for user to activate via the link in confirmation email user.set_unusable_password() user.save() # Add membership to the 'openid' group. # We do it manually instead of via user.grant_openid() because # through a series of dependencies, we can't make that call until # after the user has logged in for the first time. user.groups.add(Group.objects.get(name='openid')) # make association with openid uassoc = UserAssociation(openid_url=str(openid_), user_id=user.id) uassoc.save() #sending out activating email #this block of code were taken from account.views.registration hostname = Site.objects.get_current().domain url = 'http://%s%s' % (hostname, reverse('registration_complete')) url = wrap_url(url, uid=user.id, action='activation') params = {'domain': hostname, 'login': user.username, 'url': url} if email_template(user.email, 'account/mail/activation_required', **params): #logging log.info('username=%s clientip=%s action=user_signup', form.cleaned_data.get('username', ''), request.META.get('REMOTE_ADDR', '')) next_url = reverse('activation_required') print form.cleaned_data if form.cleaned_data.get('signup_ann', False): next_url += '?email=' + form.cleaned_data.get('email', '') return HttpResponseRedirect(next_url) else: user.delete() msg = ('The error occurred while sending email ' 'with activation code. Account was not created. ' 'Please, try later.') return message_view(request, _(msg)) elif 'bverify' in request.POST.keys(): form2 = OpenidVerifyForm(request.POST) if form2.is_valid(): is_redirect = True next_url = clean_next(form2.cleaned_data.get('next')) user = form2.get_user() user.grant_openid() # Add membership to the 'openid' group. # Don't let the association happens if there already is one. if UserAssociation.objects.filter(user=user.id).count() > 0: return render_login_form(request, next_url, message='Your account can only be associated with one OpenID URL at a time.') else: uassoc = UserAssociation(openid_url=str(openid_), user_id=user.id) uassoc.save() auth.login(request, user) else: # Take the first error message given. errors = form2.errors.popitem()[1] # redirect, can redirect only if forms are valid. if is_redirect: return HttpResponseRedirect(next_url) return render_to_response(request, template_name, {'form': form, 'openid_form': openid_form, 'errorlist': errors})
def process_url(url, **kwargs): url = wrap_url(url, **kwargs) return url.split('?')[0], cgi.parse_qs(url.split('?')[1])