Exemple #1
0
def send_confirmation_task(data_obj):
    data_obj['context']['current_site'] = Site.objects.get_current()
    user = User.objects.get(id=data_obj['context']['user'])
    data_obj['context']['user'] = user
    data_obj['context']['name'] = user.get_full_name().title()
    msg = DefaultAccountAdapter().render_mail(data_obj['template_prefix'],
                                              data_obj['email'],
                                              data_obj['context'])
    msg.send()
Exemple #2
0
 def save(self, request):
     self.cleaned_data["email"] = self.email
     DefaultAccountAdapter().stash_verified_email(request, self.email)
     # Possible problem: this causes the user to be saved twice.
     # If we want to save it once, we should override the Allauth method.
     # See https://github.com/pennersr/django-allauth/blob/master/allauth/account/forms.py#L401
     user = super().save(request)
     user = self.invitation.set_guest_type(user)
     user.save()
     return user
Exemple #3
0
def new_user(request,
             invitation_type,
             invitation_id,
             template_name="invitations_views/new_user.html"):

    invitation_type = InvitationAbstract.get_model_from_string(invitation_type)
    invitation = get_object_or_404(invitation_type, pk=invitation_id)
    context = {"invitation": invitation}
    next_step = None

    if request.user.is_authenticated:
        if not request.user.email == invitation.email:
            message = (
                "Un utilisateur précédent est déjà connecté.<br>"
                "Veuillez déconnecter ce compte en cliquant sur le bouton ci-dessous "
                "(ne tenez pas compte de la page d'accueil qui se chargera automatiquement) "
                "puis cliquez de nouveau sur le lien envoyé par e-mail pour accepter votre invitation."
            )
            message = safestring.mark_safe(message)
            messages.error(request, _(message))
            return redirect("account_logout")

    if invitation.can_be_accepted:
        user = get_user_model().objects.filter(email=invitation.email)
        if not user:
            form = NewUserForm(data=request.POST or None,
                               invitation=invitation)
            context["form"] = form
            if form.is_valid():
                user = form.save(request)
                DefaultAccountAdapter().login(request, user)
                next_step = redirect(get_safe_url(request, "redirect_to"))
        else:
            next_step = "{}?account_type={}&next={}".format(
                reverse("account_login"), invitation.SIGNIN_ACCOUNT_TYPE,
                get_safe_url(request, "redirect_to"))
            next_step = redirect(next_step)

    return next_step or render(request, template_name, context=context)
Exemple #4
0
# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals

from django.contrib.auth import get_user_model
from django.conf import settings
from django.utils.translation import ugettext_lazy as _
from rest_framework import serializers, exceptions
from rest_auth.serializers import LoginSerializer as RALoginSerializer
from allauth.account.adapter import DefaultAccountAdapter

# Get the UserModel
UserModel = get_user_model()

adapter = DefaultAccountAdapter()


class UserDetailsSerializer(serializers.ModelSerializer):
    """
    User model w/o password
    """
    class Meta:
        model = UserModel
        fields = ('email', 'first_name', 'last_name')
        read_only_fields = ('email', )


class JWTSerializer(serializers.Serializer):
    """
    Serializer for JWT authentication.
    """
    token = serializers.CharField()