コード例 #1
0
    def perform_create(self, serializer):
        """
        save store name to company table
        save user email and pwd
        send email to user for activation
        """

        store = self.request._data['store']
        check_company = Company.objects.filter(name=store).first()
        if check_company:
            raise Http404()

        user = serializer.save()
        signals.user_registered.send(sender=self.__class__,
                                     user=user,
                                     request=self.request)

        company = Company.objects.create(name=store)

        CompanyStuff.objects.create(company=company, stuff=user)

        context = {'user': user}
        to = [get_user_email(user)]
        if settings.SEND_ACTIVATION_EMAIL:
            settings.EMAIL.activation(self.request, context).send(to)
        elif settings.SEND_CONFIRMATION_EMAIL:
            settings.EMAIL.confirmation(self.request, context).send(to)
コード例 #2
0
 def perform_update(self, serializer):
     super(UserViewSet, self).perform_update(serializer)
     user = serializer.instance
     if settings.SEND_ACTIVATION_EMAIL and not user.is_active:
         context = {'user': user}
         to = [get_user_email(user)]
         settings.EMAIL.activation(self.request, context).send(to)
コード例 #3
0
 def update(self, instance, validated_data):
     email_field = get_user_email_field_name(User)
     if settings.SEND_ACTIVATION_EMAIL and email_field in validated_data:
         instance_email = get_user_email(instance)
         if instance_email != validated_data[email_field]:
             instance.is_active = False
             instance.save(update_fields=['is_active'])
     return super(UserSerializer, self).update(instance, validated_data)
コード例 #4
0
 def perform_create(self, serializer):
     user = serializer.save()
     signals.user_registered.send(sender=self.__class__,
                                  user=user,
                                  request=self.request)
     context = {'user': user}
     to = [get_user_email(user)]
     if settings.SEND_ACTIVATION_EMAIL:
         settings.EMAIL.activation(self.request, context).send(to)
     elif settings.SEND_CONFIRMATION_EMAIL:
         settings.EMAIL.confirmation(self.request, context).send(to)
コード例 #5
0
    def _action(self, serializer):
        user = self.request.user
        new_username = serializer.data['new_' + User.USERNAME_FIELD]

        setattr(user, User.USERNAME_FIELD, new_username)
        if settings.SEND_ACTIVATION_EMAIL:
            user.is_active = False
            context = {'user': user}
            to = [get_user_email(user)]
            settings.EMAIL.activation(self.request, context).send(to)
        user.save()

        return Response(status=status.HTTP_204_NO_CONTENT)
コード例 #6
0
    def _action(self, serializer):
        user = serializer.user
        user.is_active = True
        user.save()

        signals.user_activated.send(
            sender=self.__class__, user=user, request=self.request
        )

        if settings.SEND_CONFIRMATION_EMAIL:
            context = {'user': user}
            to = [get_user_email(user)]
            settings.EMAIL.confirmation(self.request, context).send(to)
        return Response(status=status.HTTP_204_NO_CONTENT)
コード例 #7
0
    def change_username(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        user = self.request.user
        new_username = serializer.data['new_' + User.USERNAME_FIELD]

        setattr(user, User.USERNAME_FIELD, new_username)
        if settings.SEND_ACTIVATION_EMAIL:
            user.is_active = False
            context = {'user': user}
            to = [get_user_email(user)]
            settings.EMAIL.activation(self.request, context).send(to)
        user.save()

        return Response(status=status.HTTP_204_NO_CONTENT)
コード例 #8
0
    def confirm(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        user = serializer.user
        user.is_active = True
        user.save()

        signals.user_activated.send(
            sender=self.__class__, user=user, request=self.request
        )

        if settings.SEND_CONFIRMATION_EMAIL:
            context = {'user': user}
            to = [get_user_email(user)]
            settings.EMAIL.confirmation(self.request, context).send(to)

        return Response(status=status.HTTP_204_NO_CONTENT)
コード例 #9
0
 def send_password_reset_email(self, user):
     context = {'user': user}
     to = [get_user_email(user)]
     settings.EMAIL.password_reset(self.request, context).send(to)