コード例 #1
0
def osdc_apply(request):
    if request.method == 'POST': # If the form has been submitted...
        form = OSDCForm(request.POST, request.FILES) # A form bound to the POST data
        if form.is_valid(): # All validation rules pass
            subject = 'OSDC Account Request'
            message = build_message(form)
            sender = form.cleaned_data['email']

            recipients = [settings.APPLICATION_EMAIL]

            pubkey = request.FILES['pubkey']
            from django.core.mail import EmailMessage
#            send_mail(subject, message, sender, recipients)
            email = EmailMessage(subject, message, sender, recipients)
            email.attach(pubkey.name, pubkey.read(), pubkey.content_type)
            email.send()
            
            return HttpResponseRedirect('thanks/') # Redirect after POST
    else:
        form = OSDCForm() # An unbound form

    return render(request, 'webforms/osdc_apply.html', {
        'form': form,
    })
コード例 #2
0
ファイル: views.py プロジェクト: xsatishx/cloud-repo
def osdc_apply(request, user=None):
    if user is None:
        user = request.user

    if request.method == 'POST': # If the form has been submitted...
        form = OSDCForm(request.POST, request.FILES) # A form bound to the POST data
        if form.is_valid(): # All validation rules pass
            subject = '%s %s OSDC Account Request' % (form.cleaned_data['first_name'],
                    form.cleaned_data['last_name'])
            message_admin = build_message(form)
            sender_admin = form.cleaned_data['email']
            recipients_admin = [settings.APPLICATION_EMAIL]

            # Values for confirmation email to user ('Subject' remains same)
            message_user = (
                    "Thank you for your application to the OSDC. "
                    "Someone from our team will contact you within "
                    "one business day.\n\n%s" % message_admin)

            sender_user = '******'
            recipients_user = [sender_admin]

            email_admin = EmailMessage(subject, message_admin, sender_admin, recipients_admin)
            email_user = EmailMessage(subject, message_user, sender_user, recipients_user)

            if "pubkey" in request.FILES:
                pubkey = request.FILES["pubkey"]
                email_admin.attach(pubkey.name, pubkey.read(), pubkey.content_type)
                email_user.attach(pubkey.name, pubkey.read(), pubkey.content_type)

            try:
                email_admin.send()
                email_user.send()
                if not request.user.is_authenticated():
                    logout(request)
                    # Redirect after POST
                return HttpResponseRedirect('thanks/')

            except smtplib.SMTPRecipientsRefused as e:
                form._errors["email"] = ErrorList(
                    # Changed 'sender' to 'sender_admin' after code split into two emails.
                    [u"Domain of address %s does not exist" % sender_admin])

    else:
        if request.user.is_authenticated():
            form = OSDCForm(initial={"eppn": user.username,
                    "method": "re-apply"})
        elif hasattr(user, 'identifier'):
            try:
                email_value = user.identifier
                validate_email(email_value)
            except ValidationError:
                email_value = ""

            form = OSDCForm(initial={"eppn": user.identifier,
                    "email": email_value, "method": user.method})
        else:
            return HttpResponseRedirect('/pre_apply/?next=/apply/')

    return render(request, 'webforms/osdc_apply.html', {
        'form': form,
    })