Example #1
0
    def decorate(request, *args, **kwargs):
        if not 'applicant_id' in request.session:
            return redirect_to_index(request)
        try:
            applicant = (Applicant.objects.select_related(depth=1).get(
                pk=request.session['applicant_id']))
        except Applicant.DoesNotExist:
            return redirect_to_index(request)

        request.applicant = applicant
        return view_function(request, *args, **kwargs)
Example #2
0
    def decorate(request, *args, **kwargs):
        if not 'applicant_id' in request.session:
            return redirect_to_index(request)
        try:
            applicant = (Applicant.objects.
                         select_related(depth=1).
                         get(pk=request.session['applicant_id']))
        except Applicant.DoesNotExist:
            return redirect_to_index(request)

        request.applicant = applicant
        return view_function(request, *args, **kwargs)
Example #3
0
def logout(request):
    next_url = None
    if 'url' in request.GET:
        next_url = request.GET['url']
        if next_url[0]!='/':
            next_url = 'http://' + next_url
    request.session.flush()
    if next_url and (next_url in ALLOWED_LOGOUT_REDIRECTION):
        return HttpResponseRedirect(next_url)
    else:
        return redirect_to_index(request)
Example #4
0
def logout(request):
    next_url = None
    if 'url' in request.GET:
        next_url = request.GET['url']
        if next_url[0] != '/':
            next_url = 'http://' + next_url
    request.session.flush()
    if next_url and (next_url in ALLOWED_LOGOUT_REDIRECTION):
        return HttpResponseRedirect(next_url)
    else:
        return redirect_to_index(request)
Example #5
0
def register(request):
    if request.method == 'POST':
        if 'cancel' in request.POST:
            return redirect_to_index(request)
        form = RegistrationForm(request.POST)

        if not settings.NAT_ID_VERIFICATION:
            form.disable_national_id_verification()

        if form.is_valid():
            email = form.cleaned_data['email']
            first_name=form.cleaned_data['first_name']
            last_name=form.cleaned_data['last_name']
            national_id=form.cleaned_data['national_id']

            result, error_field, applicant = (
                validate_email_and_national_id(email,
                                               national_id))

            if result:
                try:
                    applicant = form.get_applicant()
                    passwd = applicant.random_password()
                    applicant.save()
                except IntegrityError:
                    # somehow, it gets error

                    result, error_field, applicant = (
                        validate_email_and_national_id(email,
                                                       national_id))
                    return registration_error(error_field,
                                              applicant,
                                              email,
                                              national_id,
                                              first_name,
                                              last_name)
                
                registration = Registration(
                    applicant=applicant,
                    first_name=first_name,
                    last_name=last_name)
                registration.random_and_save()
                send_password_by_email(applicant, passwd)
                return render_to_response(
                    'application/registration/success.html',
                    {'email': form.cleaned_data['email'],
                     'step_name': "การลงทะเบียนเรียบร้อย" })
            else:
                if not applicant.has_logged_in:
                    return registration_error(error_field,
                                              applicant,
                                              email,
                                              national_id,
                                              first_name,
                                              last_name)

                # e-mail or national id has been registered and logged in
                from django.forms.util import ErrorList
                from commons.utils import admin_email

                if error_field == 'email':
                    dup_obj = u'อีเมล์'
                else:
                    dup_obj = u'รหัสประจำตัวประชาชน'

                form._errors['__all__'] = ErrorList([
u"""%(dup_obj)sนี้ถูกลงทะเบียนและถูกใช้แล้ว ถ้าอีเมล์นี้เป็นของคุณจริงและยังไม่เคยลงทะเบียน
กรุณาติดต่อผู้ดูแลระบบทางอีเมล์ <a href="mailto:%(email)s">%(email)s</a> หรือทางเว็บบอร์ด
อาจมีผู้ไม่ประสงค์ดีนำอีเมล์คุณไปใช้""" % {'dup_obj': dup_obj,
                                 'email': admin_email()}])
                
    else:
        form = RegistrationForm()
    return render_to_response('application/registration/register.html',
                              { 'form': form },
                              context_instance=RequestContext(request))
Example #6
0
def register(request):
    if request.method == 'POST':
        if 'cancel' in request.POST:
            return redirect_to_index(request)
        form = RegistrationForm(request.POST)

        if not settings.NAT_ID_VERIFICATION:
            form.disable_national_id_verification()

        if form.is_valid():
            email = form.cleaned_data['email']
            first_name = form.cleaned_data['first_name']
            last_name = form.cleaned_data['last_name']
            national_id = form.cleaned_data['national_id']

            result, error_field, applicant = (validate_email_and_national_id(
                email, national_id))

            if result:
                try:
                    applicant = form.get_applicant()
                    passwd = applicant.random_password()
                    applicant.save()
                except IntegrityError:
                    # somehow, it gets error

                    result, error_field, applicant = (
                        validate_email_and_national_id(email, national_id))
                    return registration_error(error_field, applicant, email,
                                              national_id, first_name,
                                              last_name)

                registration = Registration(applicant=applicant,
                                            first_name=first_name,
                                            last_name=last_name)
                registration.random_and_save()
                send_password_by_email(applicant, passwd)
                return render_to_response(
                    'application/registration/success.html', {
                        'email': form.cleaned_data['email'],
                        'step_name': "การลงทะเบียนเรียบร้อย"
                    })
            else:
                if not applicant.has_logged_in:
                    return registration_error(error_field, applicant, email,
                                              national_id, first_name,
                                              last_name)

                # e-mail or national id has been registered and logged in
                from django.forms.util import ErrorList
                from commons.utils import admin_email

                if error_field == 'email':
                    dup_obj = u'อีเมล์'
                else:
                    dup_obj = u'รหัสประจำตัวประชาชน'

                form._errors['__all__'] = ErrorList([
                    u"""%(dup_obj)sนี้ถูกลงทะเบียนและถูกใช้แล้ว ถ้าอีเมล์นี้เป็นของคุณจริงและยังไม่เคยลงทะเบียน
กรุณาติดต่อผู้ดูแลระบบทางอีเมล์ <a href="mailto:%(email)s">%(email)s</a> หรือทางเว็บบอร์ด
อาจมีผู้ไม่ประสงค์ดีนำอีเมล์คุณไปใช้""" % {
                        'dup_obj': dup_obj,
                        'email': admin_email()
                    }
                ])

    else:
        form = RegistrationForm()
    return render_to_response('application/registration/register.html',
                              {'form': form},
                              context_instance=RequestContext(request))