Ejemplo n.º 1
0
def register(request, event=None):
    if request.user.is_authenticated():
        messages.error(request, 'You cannot be logged in when registering.')
        return redirect('root', event=event)
    else:
        if request.method == 'POST':
            form = RegisterForm(request.POST)
            if form.is_valid():
                cleaned = form.cleaned_data

                # Create user
                user = SiteUser(
                    username=cleaned['username'].lower(),
                    nickname=cleaned['username'].lower(),
                    first_name=cleaned['first_name'],
                    last_name=cleaned['last_name'],
                    email=cleaned['email'].lower(),
                    date_of_birth=cleaned['date_of_birth'],
                    zip_code=cleaned['zip_code'],
                    address=cleaned['address'],
                    phone=cleaned['phone'],
                    skype=cleaned['skype'],
                    steam=cleaned['steam'],
                    town=cleaned['town'],
                    country=cleaned['country'],
                    # image=cleaned['image'],
                )
                user.set_password(cleaned['password'])
                user.is_active = False
                user.save()
                user.setNameNotRetard()

                # Create the registration token
                token = uuid.uuid4().hex
                rt = RegisterToken(user=user, token=token)
                rt.save()

                email_message = u"""
Du har registrert en konto på dfektlan.no.

For å bruke denne kontoen må du aktivere den. Du kan aktivere den ved å besøke linken under.

http://%s/%s/auth/verify/%s/

Aktiveringslinken er kun aktiv i 24 timer, etter dette vil du måtte bruke Reset Password for
å få en ny link.
""" % (request.META['HTTP_HOST'], event, token)

                send_mail('Verify your account', email_message, settings.REGISTER_FROM_MAIL, [user.email, ])

                messages.success(request, 'Registration successful. Check your email for verification instructions.')

                return redirect('root', event=event)
            else:
                form = RegisterForm(request.POST, auto_id=True)
        else:
            form = RegisterForm()

        return render(request, 'auth/register.html', {'form': form, 'event': event, })
Ejemplo n.º 2
0
def register(request):
    if request.user.is_authenticated():
        messages.error(request, _(u'You cannot be logged in when registering.'))
        return HttpResponseRedirect('/')
    else:
        if request.method == 'POST':
            form = RegisterForm(request.POST)
            if form.is_valid():
                cleaned = form.cleaned_data

                # Create user
                user = User(
                    username=cleaned['desired_username'],
                    first_name=cleaned['first_name'],
                    last_name=cleaned['last_name'],
                    email=cleaned['email'],
                )
                user.set_password(cleaned['password'])
                user.is_active = False
                user.save()

                # Create userprofile
                up = UserProfile(
                    user=user,
                    nick=cleaned['desired_username'],
                    date_of_birth=cleaned['date_of_birth'],
                    zip_code=cleaned['zip_code'],
                    address=cleaned['address'],
                    phone=cleaned['phone'],
                )
                up.save()

                # Create the registration token
                token = uuid.uuid4().hex
                rt = RegisterToken(user=user, token=token)
                rt.save()

                email_message = create_verify_message(request.META['HTTP_HOST'], token)

                send_mail(_(u'Verify your account'), email_message, settings.STUDLAN_FROM_MAIL, [user.email,], fail_silently=False)

                messages.success(request, _(u'Registration successful. Check your email for verification instructions.'))

                return HttpResponseRedirect('/')
            else:
                form = RegisterForm(request.POST, auto_id=True, error_class=InlineSpanErrorList)
        else:
            form = RegisterForm()

        return render(request, 'auth/register.html', {'form': form, })
Ejemplo n.º 3
0
def direct_register(request):
    if request.method == 'POST':
        form = RegisterForm(request.POST)
        if form.is_valid():
            cleaned = form.cleaned_data
            lan = LAN.objects.filter(end_date__gte=datetime.now())[0]

            if not lan:
                messages.error(request, u'No upcoming LAN was found.')
                return HttpResponseRedirect('/auth/direct_register')

            # Create user
            user = User(
               username=cleaned['desired_username'],
               first_name=cleaned['first_name'],
               last_name=cleaned['last_name'],
               email=cleaned['email'],
            )
            user.set_password(cleaned['password'])
            user.is_active = True
            user.save()

            # Create userprofile
            up = UserProfile(
                user=user,
                nick=cleaned['desired_username'],
                date_of_birth=cleaned['date_of_birth'],
                zip_code=cleaned['zip_code'],
                address=cleaned['address'],
                phone=cleaned['phone'],
            )
            up.save()

            attendee = Attendee(lan=lan, user=user)
            attendee.save()

            messages.success(request, _(u'Registration successful.'))

            return HttpResponseRedirect('/auth/direct_register')
        else:
            form = RegisterForm(request.POST, auto_id=True, error_class=InlineSpanErrorList)
    else:
        form = RegisterForm()
        lan = LAN.objects.filter(end_date__gte=datetime.now())[0]

    return render(request, 'auth/direct_register.html', {'form': form, 'lan': lan})
Ejemplo n.º 4
0
def register(request):
    if request.user.is_authenticated():
        messages.error(request, _(u'You cannot be logged in when registering.'))
        return HttpResponseRedirect('/')
    else:
        if request.method == 'POST':
            form = RegisterForm(request.POST)
            if form.is_valid():
                cleaned = form.cleaned_data

                # Create user
                user = User(
                    username=cleaned['desired_username'],
                    first_name=cleaned['first_name'],
                    last_name=cleaned['last_name'],
                    email=cleaned['email'],
                )
                user.set_password(cleaned['password'])
                user.is_active = False
                user.save()

                # Create userprofile
                up = UserProfile(
                    user=user,
                    nick=cleaned['desired_username'],
                    date_of_birth=cleaned['date_of_birth'],
                    zip_code=cleaned['zip_code'],
                    address=cleaned['address'],
                    phone=cleaned['phone'],
                )
                up.save()

                # Create the registration token
                token = uuid.uuid4().hex
                rt = RegisterToken(user=user, token=token)
                rt.save()

                link = request.build_absolute_uri(reverse('auth_verify', args=[token]))
                context = {
                    'link': link,
                }
                txt_message = render_to_string('auth/email/verify_account.txt', context, request).strip()
                html_message = render_to_string('auth/email/verify_account.html', context, request).strip()
                send_mail(
                    subject=_(u'Verify your account'),
                    from_email=settings.STUDLAN_FROM_MAIL,
                    recipient_list=[user.email],
                    message=txt_message,
                    html_message=html_message,
                )

                messages.success(request, _(u'Registration successful. Check your email for verification instructions.'))

                return HttpResponseRedirect('/')
            else:
                form = RegisterForm(request.POST, auto_id=True, error_class=InlineSpanErrorList)
        else:
            form = RegisterForm()

        return render(request, 'auth/register.html', {'form': form})
Ejemplo n.º 5
0
def direct_register(request, lan_id):
    lan = get_object_or_404(LAN, id=lan_id)

    if lan.is_ended():
        messages.error(request,
                       _(u'The LAN is ended, arrivals can\'t be changed.'))
        return redirect('/')

    if request.method == 'POST':
        form = RegisterForm(request.POST)
        if form.is_valid():
            cleaned = form.cleaned_data

            # Create user
            user = User(
                username=cleaned['desired_username'],
                first_name=cleaned['first_name'],
                last_name=cleaned['last_name'],
                email=cleaned['email'],
            )
            user.set_password(cleaned['password'])
            user.is_active = True
            user.save()

            # Create userprofile
            up = UserProfile(
                user=user,
                nick=cleaned['desired_username'],
                date_of_birth=cleaned['date_of_birth'],
                zip_code=cleaned['zip_code'],
                address=cleaned['address'],
                phone=cleaned['phone'],
            )
            up.save()

            attendee = Attendee(lan=lan, user=user)
            attendee.save()

            messages.success(request, _(u'Registration successful.'))

            return redirect('/auth/direct_register')
        else:
            form = RegisterForm(request.POST,
                                auto_id=True,
                                error_class=InlineSpanErrorList)
    else:
        form = RegisterForm()

    breadcrumbs = (
        (lan, lan.get_absolute_url()),
        (_(u'Manual Registration'), ''),
    )
    context = {
        'breadcrumbs': breadcrumbs,
        'lan': lan,
        'form': form,
    }

    return render(request, 'auth/direct_register.html', context)
Ejemplo n.º 6
0
def direct_register(request):
    lan = LAN.objects.filter(end_date__gte=datetime.now()).first()
    if request.method == 'POST':
        form = RegisterForm(request.POST)
        if form.is_valid():
            cleaned = form.cleaned_data

            if lan is None:
                messages.error(request, _(u'No upcoming LAN was found.'))
                return HttpResponseRedirect('/auth/direct_register')

            # Create user
            user = User(
                username=cleaned['desired_username'],
                first_name=cleaned['first_name'],
                last_name=cleaned['last_name'],
                email=cleaned['email'],
            )
            user.set_password(cleaned['password'])
            user.is_active = True
            user.save()

            # Create userprofile
            up = UserProfile(
                user=user,
                nick=cleaned['desired_username'],
                date_of_birth=cleaned['date_of_birth'],
                zip_code=cleaned['zip_code'],
                address=cleaned['address'],
                phone=cleaned['phone'],
            )
            up.save()

            attendee = Attendee(lan=lan, user=user)
            attendee.save()

            messages.success(request, _(u'Registration successful.'))

            return HttpResponseRedirect('/auth/direct_register')
        else:
            form = RegisterForm(request.POST, auto_id=True, error_class=InlineSpanErrorList)
    else:
        form = RegisterForm()

    return render(request, 'auth/direct_register.html', {'form': form, 'lan': lan})
Ejemplo n.º 7
0
def register(request):
    log = logging.getLogger(__name__)

    if request.user.is_authenticated:
        messages.error(
            request, _('Registrering av ny konto krever at du er logget ut.'))
        return HttpResponseRedirect('/')
    else:
        if request.method == 'POST':
            form = RegisterForm(request.POST)
            if form.is_valid():
                cleaned = form.cleaned_data

                # Create user
                user = User(
                    username=cleaned['username'],
                    first_name=cleaned['first_name'].title(),
                    last_name=cleaned['last_name'].title(),
                )
                # Set remaining fields
                user.phone_number = cleaned['phone']
                user.address = cleaned['address'].title()
                user.zip_code = cleaned['zip_code']
                # Store password properly
                user.set_password(cleaned['password'])
                # Users need to be manually activated
                user.is_active = False
                user.save()

                # Set email address
                email = Email(
                    user=user,
                    email=cleaned['email'].lower(),
                )
                email.primary = True
                email.save()

                # Create the registration token
                token = uuid.uuid4().hex

                try:
                    rt = RegisterToken(user=user,
                                       email=email.email,
                                       token=token)
                    rt.save()
                    log.info('Successfully registered token for %s' %
                             request.user)
                except IntegrityError as ie:
                    log.error('Failed to register token for "%s" due to "%s"' %
                              (request.user, ie))

                email_context = {}
                verify_url = reverse('auth_verify', args=(token, ))
                email_context['verify_url'] = request.build_absolute_uri(
                    verify_url)

                message = render_to_string('auth/email/welcome_tpl.txt',
                                           email_context)

                try:
                    send_mail(_('Verifiser din konto'), message,
                              settings.DEFAULT_FROM_EMAIL, [
                                  email.email,
                              ])
                except SMTPException:
                    messages.error(
                        request,
                        'Det oppstod en kritisk feil, epostadressen er ugyldig!'
                    )
                    return redirect('home')

                messages.success(
                    request,
                    _('Registreringen var vellykket. Se tilsendt epost for verifiseringsinstrukser.'
                      ))

                return HttpResponseRedirect('/')
            else:
                form = RegisterForm(request.POST, auto_id=True)
        else:
            form = RegisterForm()

        return render(request, 'auth/register.html', {
            'form': form,
        })
Ejemplo n.º 8
0
def register(request):
    log = logging.getLogger(__name__)

    if request.user.is_authenticated:
        messages.error(
            request, _("Registrering av ny konto krever at du er logget ut."))
        return HttpResponseRedirect("/")
    else:
        if request.method == "POST":
            form = RegisterForm(request.POST)
            if form.is_valid():
                cleaned = form.cleaned_data

                # Create user
                user = User(
                    username=cleaned["username"],
                    first_name=cleaned["first_name"].title(),
                    last_name=cleaned["last_name"].title(),
                )
                # Set remaining fields
                user.phone_number = cleaned["phone"]
                user.address = cleaned["address"].title()
                user.zip_code = cleaned["zip_code"]
                # Store password properly
                user.set_password(cleaned["password"])
                # Users need to be manually activated
                user.is_active = False
                user.save()

                # Set email address
                email = Email(user=user, email=cleaned["email"].lower())
                email.primary = True
                email.save()

                # Create the registration token
                token = uuid.uuid4().hex

                try:
                    rt = RegisterToken(user=user,
                                       email=email.email,
                                       token=token)
                    rt.save()
                    log.info("Successfully registered token for %s" %
                             request.user)
                except IntegrityError as ie:
                    log.error('Failed to register token for "%s" due to "%s"' %
                              (request.user, ie))

                email_context = {}
                verify_url = reverse("auth_verify", args=(token, ))
                email_context["verify_url"] = request.build_absolute_uri(
                    verify_url)

                message = render_to_string("auth/email/welcome_tpl.txt",
                                           email_context)

                try:
                    send_mail(
                        _("Verifiser din konto"),
                        message,
                        settings.DEFAULT_FROM_EMAIL,
                        [email.email],
                    )
                except SMTPException:
                    messages.error(
                        request,
                        "Det oppstod en kritisk feil, epostadressen er ugyldig!",
                    )
                    return redirect("home")

                messages.success(
                    request,
                    _("Registreringen var vellykket. Se tilsendt epost for verifiseringsinstrukser."
                      ),
                )

                return HttpResponseRedirect("/")
            else:
                form = RegisterForm(request.POST, auto_id=True)
        else:
            form = RegisterForm()

        return render(request, "auth/register.html", {"form": form})