Esempio n. 1
0
def check_plan_expiration(sender=None, request=None, user=None, related=None, **kwargs):
    """
    Verify user plan expiration upon user login.
    This will be connected to the user_logged_in signal.

    It will downgrade the user plan if:
        - the user plan has no expiration date
        - the user plan has expired
    And will send an email to the user.
    """
    if related or has_user_related(user):
        related = related or get_user_related(user)
        if related.is_premium:
            if related.plan_expires_at:
                expires = related.plan_expires_at
                now = datetime.now(utc) if expires.tzinfo else datetime.now()
                if expires >= now:
                    return

            related.plan = "basic"
            related.plan_expires_at = None
            related.save()
            send_mail_from_template_with_noreply(
                "email/plan.html", {},
                subject=u"Votre plan premium vient d'expirer", to=[related.email]
            )
Esempio n. 2
0
 def send_verification_email(self, request):
     """
     Send a verification email to a user after signup.
     """
     keygroup = KeyGroup.objects.get(name="activate_account")
     key = Key.generate(group=keygroup)
     key.claimed_by = self.user
     key.claimed = None
     key.save()
     activate_url = reverse('verification-claim-get', kwargs={'key': key, 'group': key.group})
     activate_url = request.build_absolute_uri(activate_url)
     send_mail_from_template_with_noreply(
         "email/verification.html", {"activate_url": activate_url},
         subject=u"Email de vérification", to=[self.email]
     )
Esempio n. 3
0
    def send_notification(self):
        context = {
            'site': RequestSite(self.request),
            'user': self.user,
            'username': get_username(self.user),
            'token': signing.dumps(self.user.pk, salt=self.salt),
            'secure': self.request.is_secure(),
        }
        subject = loader.render_to_string(
            self.email_subject_template_name, context
        ).strip()

        mail.send_mail_from_template_with_noreply(
            self.email_template_name, context,
            subject=subject, to=[self.user.email]
        )