Beispiel #1
0
def account_check_nieuwe_email(request, from_ip, account):
    """ detecteer wissel van email in CRM; stuur bevestig verzoek mail """

    # kijk of een nieuw e-mailadres bevestigd moet worden
    ack_url, mailadres = account_check_gewijzigde_email(account)
    if ack_url:
        # schrijf in het logboek
        schrijf_in_logboek(
            account=None,
            gebruikte_functie="Inloggen",
            activiteit="Bevestiging van nieuwe email gevraagd voor account %s"
            % repr(account.username))

        text_body = (
            "Hallo!\n\n" + "Dit is een verzoek vanuit " + settings.NAAM_SITE +
            " om toegang tot je email te bevestigen.\n" +
            "Klik op onderstaande link om dit te bevestigen.\n\n" + ack_url +
            "\n\n" +
            "Als je dit verzoek onverwacht ontvangen hebt, neem dan contact met ons op via "
            + settings.EMAIL_BONDSBUREAU + "\n\n" +
            "Veel plezier met de site!\n" + "Het bondsbureau\n")

        mailer_queue_email(mailadres,
                           'Email adres bevestigen',
                           text_body,
                           enforce_whitelist=False)

        context = {'partial_email': mailer_obfuscate_email(mailadres)}
        menu_dynamics(request, context)
        return render(request, TEMPLATE_NIEUWEEMAIL, context)

    # geen wijziging van e-mailadres - gewoon doorgaan
    return None
Beispiel #2
0
    def post(request, *args, **kwargs):
        eigenaar = request.user

        try:
            opdracht_pk = int(
                kwargs['opdracht_pk'][:6])  # afkappen voor veiligheid
            opdracht = (Opdracht.objects.select_related('bron').get(
                pk=opdracht_pk, eigenaar=eigenaar))  # alleen eigen producten
        except (ValueError, Opdracht.DoesNotExist):
            raise Resolver404()

        if opdracht.is_afgehandeld or opdracht.is_vrijgegeven_voor_levering:
            raise Resolver404()

        opdracht.is_vrijgegeven_voor_levering = True
        opdracht.save()

        mailer_queue_email(opdracht.to_email, opdracht.subject,
                           opdracht.mail_body)

        opdracht.is_afgehandeld = True
        opdracht.save()

        url = reverse('Producten:bekijk-opdracht',
                      kwargs={'opdracht_pk': opdracht.pk})
        return HttpResponseRedirect(url)
Beispiel #3
0
def account_vraag_email_bevestiging(accountmail, **kwargs):
    """ Stuur een mail naar het adres om te vragen om een bevestiging.
        Gebruik een tijdelijke URL die, na het volgen, weer in deze module uit komt.
    """

    # maak de url aan om het e-mailadres te bevestigen
    url = maak_tijdelijke_url_account_email(accountmail, **kwargs)

    text_body = (
        "Hallo!\n\n" + "Je hebt een account aangemaakt op de DOF website.\n" +
        "Klik op onderstaande link om dit te bevestigen.\n\n" + url + "\n\n" +
        "Als jij dit niet was, neem dan contact met ons op het support e-mail adres\n\n"
        + "Veel plezier met de site!\n" + "Het website team\n")

    mailer_queue_email(accountmail.nieuwe_email, 'Aanmaken account voltooien',
                       text_body)
Beispiel #4
0
def stuur_nieuwe_taak_email(email, aantal_open):
    """ Stuur een e-mail dat er een nieuwe taak te wachten staat.
    """

    if aantal_open == 1:
        aantal_str = "stond er 1 taak open"
    else:
        aantal_str = "stonden er %s taken open" % aantal_open

    text_body = ("Hallo %s!\n\n" % email.account.get_first_name() +
                 "Er is zojuist een nieuwe taak voor jou aangemaakt op %s\n" %
                 settings.SITE_URL +
                 "Op het moment van sturen %s.\n\n" % aantal_str +
                 "Bedankt voor je aandacht!\n" + "Het bondsbureau\n")

    mailer_queue_email(email.bevestigde_email,
                       'Er is een nieuwe taak voor jou', text_body)
Beispiel #5
0
def stuur_taak_email_herinnering(email, aantal_open):
    """ Stuur een e-mail ter herinnering dat er een taak te wachten staat.
    """

    if aantal_open == 1:
        aantal_str = "stond er 1 taak open"
        taken_str = "is een taak die jouw aandacht nodig heeft"
    else:
        aantal_str = "stonden er %s taken open" % aantal_open
        taken_str = "zijn taken die jouw aandacht nodig hebben"

    text_body = ("Hallo %s!\n\n" % email.account.get_first_name() +
                 "Er %s op %s\n" % (taken_str, settings.SITE_URL) +
                 "Op het moment van sturen %s.\n\n" % aantal_str +
                 "Bedankt voor je aandacht!\n" + "Het bondsbureau\n")

    mailer_queue_email(email.bevestigde_email, 'Er zijn taken voor jou',
                       text_body)
Beispiel #6
0
def account_stuur_email_wachtwoord_vergeten(accountemail, **kwargs):
    """ Stuur een mail naar het adres om te vragen om een bevestiging.
        Gebruik een tijdelijke URL die, na het volgen, weer in deze module uit komt.
    """

    # maak de url aan om het e-mailadres te bevestigen
    url = maak_tijdelijke_url_wachtwoord_vergeten(accountemail, **kwargs)

    text_body = (
        "Hallo!\n\n" +
        "Je hebt aangegeven je wachtwoord vergeten te zijn voor de DOF website.\n"
        +
        "Klik op onderstaande link om een nieuw wachtwoord in te stellen.\n\n"
        + url + "\n\n" +
        "Als jij dit niet was, neem dan contact met ons op het gebruikelijke e-mailadres.\n\n"
        + "Veel plezier met de site!\n" + "Het webshop team\n")

    mailer_queue_email(accountemail.bevestigde_email, 'Wachtwoord vergeten',
                       text_body)
Beispiel #7
0
    def setUp(self):
        """ initialisatie van de test case """

        # maak een onvoltooid account aan
        account, _ = account_create(
            'test',
            'Voornaam',
            'Achternaam',
            'fdsli131982c$114',  # password
            '*****@*****.**',
            email_is_bevestigd=False)
        account.date_joined -= datetime.timedelta(days=4)
        account.save()

        # maak een oude logboek regel aan
        schrijf_in_logboek(None, 'Test', 'Just testing')
        regel = LogboekRegel.objects.get(gebruikte_functie='Test')
        regel.toegevoegd_op -= datetime.timedelta(days=549)
        regel.save()

        # maak een mail aan die lang geleden verstuurd is
        mailer_queue_email('*****@*****.**',
                           'Test',
                           'Test',
                           enforce_whitelist=False)
        mail = MailQueue.objects.all()[0]
        mail.toegevoegd_op -= datetime.timedelta(days=92)
        mail.save()

        # maak een tijdelijke url aan
        save_tijdelijke_url('code', 'test', geldig_dagen=-8)

        # maak een oude, afgehandelde site feedback aan
        store_feedback('mij', 'pagina', SiteFeedback.url2bev['plus'],
                       'feedback')
        feedback = SiteFeedback.objects.all()[0]
        feedback.toegevoegd_op -= datetime.timedelta(days=92)
        feedback.is_afgehandeld = True
        feedback.save()

        # maak een afgehandelde taak aan
        Taak(is_afgerond=True, deadline='2020-01-01',
             beschrijving='test').save()
Beispiel #8
0
def functie_vraag_email_bevestiging(functie):
    """ Stuur een mail naar het adres om te vragen om een bevestiging.
        Gebruik een tijdelijke URL die, na het volgen, weer in deze module uit komt.
    """

    # maak de url aan om het e-mailadres te bevestigen
    url = maak_tijdelijke_url_functie_email(functie)

    text_body = ("Hallo!\n\n" +
                 "Een beheerder heeft dit e-mailadres gekoppeld op " +
                 settings.NAAM_SITE + ".\n" +
                 "Klik op onderstaande link om dit te bevestigen.\n\n" + url +
                 "\n\n" +
                 "Als je dit niet herkent, neem dan contact met ons op via " +
                 settings.EMAIL_BONDSBUREAU + "\n\n" + "Het bondsbureau\n")

    mailer_queue_email(functie.nieuwe_email,
                       'Bevestig gebruik e-mail voor rol',
                       text_body,
                       enforce_whitelist=False)
Beispiel #9
0
def account_vraag_email_bevestiging(accountmail, **kwargs):
    """ Stuur een mail naar het adres om te vragen om een bevestiging.
        Gebruik een tijdelijke URL die, na het volgen, weer in deze module uit komt.
    """

    # maak de url aan om het e-mailadres te bevestigen
    url = maak_tijdelijke_url_account_email(accountmail, **kwargs)

    text_body = ("Hallo!\n\n" + "Je hebt een account aangemaakt op " +
                 settings.NAAM_SITE + ".\n" +
                 "Klik op onderstaande link om dit te bevestigen.\n\n" + url +
                 "\n\n" +
                 "Als jij dit niet was, neem dan contact met ons op via " +
                 settings.EMAIL_BONDSBUREAU + "\n\n" +
                 "Veel plezier met de site!\n" + "Het bondsbureau\n")

    mailer_queue_email(accountmail.nieuwe_email,
                       'Aanmaken account voltooien',
                       text_body,
                       enforce_whitelist=False)  # deze mails altijd doorlaten
Beispiel #10
0
def account_stuur_email_wachtwoord_vergeten(accountemail, **kwargs):
    """ Stuur een mail naar het adres om te vragen om een bevestiging.
        Gebruik een tijdelijke URL die, na het volgen, weer in deze module uit komt.
    """

    # maak de url aan om het e-mailadres te bevestigen
    url = maak_tijdelijke_url_wachtwoord_vergeten(accountemail, **kwargs)

    text_body = (
        "Hallo!\n\n" +
        "Je hebt aangegeven je wachtwoord vergeten te zijn voor " +
        settings.NAAM_SITE + ".\n" +
        "Klik op onderstaande link om een nieuw wachtwoord in te stellen.\n\n"
        + url + "\n\n" +
        "Als jij dit niet was, neem dan contact met ons op via " +
        settings.EMAIL_BONDSBUREAU + "\n\n" + "Veel plezier met de site!\n" +
        "Het bondsbureau\n")

    mailer_queue_email(accountemail.bevestigde_email,
                       'Wachtwoord vergeten',
                       text_body,
                       enforce_whitelist=False)
Beispiel #11
0
    def _stuur_notificatie_email(account,
                                 door_naam,
                                 functie_beschrijving,
                                 add=False,
                                 remove=False):
        functie_beschrijving = '"' + functie_beschrijving + '"'

        if add:
            actie = "Toegevoegde"
        else:
            actie = 'Verwijderde'

        text_body = (
            "Hallo!\n\n" + "Je rollen zijn aangepast op " +
            settings.NAAM_SITE + ".\n\n" + actie + " rol: " +
            functie_beschrijving + ".\n\n" +
            "Als je dit niet herkent, neem dan contact met ons op via " +
            settings.EMAIL_BONDSBUREAU + "\n\n" + "Het bondsbureau\n")

        email = account.accountemail_set.all()[0]
        mailer_queue_email(email.bevestigde_email,
                           'Wijziging rollen op ' + settings.NAAM_SITE,
                           text_body)
Beispiel #12
0
    def _maak_opdracht(self, inbox, items, order, template_taal):
        try:
            email = items['E-mail']
            naam = items['Naam']
        except KeyError:
            if self._verbose:
                self.stderr.write('[ERROR] Inbox pk=%s heeft niet alle benodigde items' % inbox.pk)
                self.stderr.write('Dit zijn de items:')
                for key, value in items.items():
                    self.stderr.write('   %s / %s' % (key, value))
            my_logger.error('Inbox pk=%s heeft niet alle benodigde items' % inbox.pk)
            return False        # faal

        email = email.strip()
        if not mailer_email_is_valide(email):
            self.stderr.write('[ERROR] Inbox pk=%s heeft geen valide e-mail: %s' % (inbox.pk, repr(email)))
            my_logger.error('Inbox pk=%s heeft geen valide e-mail: %s' % (inbox.pk, repr(email)))
            return False        # faal

        try:
            opdracht = Opdracht.objects.get(bron=inbox)
        except Opdracht.DoesNotExist:
            # maak een nieuwe opdracht aan
            opdracht = Opdracht()
            opdracht.bron = inbox
        else:
            # hergebruik de opdracht (voorkom duplicates)
            opdracht.producten.clear()

        opdracht.eigenaar = Account.objects.get(username=settings.DEFAULT_EIGENAAR)
        opdracht.to_email = email
        opdracht.to_naam = naam
        opdracht.regels = "\n".join([regel for _, regel in order])
        opdracht.regels += '\n\nGekozen taal voor de levering: %s' % template_taal
        opdracht.save()

        opdracht.is_vrijgegeven_voor_levering = True

        # zoek matchende producten
        prod_links = list()
        for taal, regel in order:
            # print('taal: %s, regel: %s' % (taal, repr(regel)))
            for prod in (Product
                         .objects
                         .filter(eigenaar=opdracht.eigenaar,
                                 taal=taal)):
                if prod.is_match(regel):
                    # controleer dat het bestand bestaat, anders niet leveren
                    fpath, _ = get_path_to_product_bestand(prod)
                    if os.path.exists(fpath):
                        opdracht.producten.add(prod)

                        # levering aanmaken (of hergebruiken)
                        try:
                            levering = Levering.objects.get(opdracht=opdracht,
                                                            product=prod)
                        except Levering.DoesNotExist:
                            levering = Levering(opdracht=opdracht,
                                                product=prod,
                                                eigenaar=opdracht.eigenaar,
                                                to_email=email)
                            levering.maak_url_code()
                            levering.download_count = settings.DOWNLOAD_CREDITS
                            levering.save()

                        url = settings.SITE_URL + '/code/%s/' % levering.url_code
                        link = '%s: %s' % (prod.korte_beschrijving, url)
                        if link not in prod_links:
                            prod_links.append(link)
                    else:
                        self.stderr.write('[ERROR] Kan bestand %s niet vinden' % repr(fpath))

                    if prod.handmatig_vrijgeven:
                        opdracht.is_vrijgegeven_voor_levering = False
            # for
        # for

        if len(prod_links) == 0:
            # geen producten kunnen matchen
            opdracht.is_vrijgegeven_voor_levering = False
            my_logger.warning('Opdracht pk=%s niet kunnen koppelen aan een product' % opdracht.pk)
            opdracht.save()
            return False        # faal

        try:
            template = (BerichtTemplate
                        .objects
                        .get(eigenaar=opdracht.eigenaar,
                             taal=template_taal))
        except BerichtTemplate.DoesNotExist:
            # geen template kunnen maken
            opdracht.is_vrijgegeven_voor_levering = False
            my_logger.error('Geen template voor taal %s en eigenaar %s' % (
                                    repr(template_taal),
                                    opdracht.eigenaar.get_first_name()))
            opdracht.save()
            return False

        if len(prod_links) > 1:
            msg = template.plural
        else:
            msg = template.singular
        msg = msg.replace('%NAME%', opdracht.to_naam)
        msg = msg.replace('%LINKS%', "\n".join(prod_links))

        opdracht.mail_body = msg
        opdracht.subject = template.subject
        opdracht.save()

        # indien automatisch vrijgegeven, verstuur meteen de e-mail
        if opdracht.is_vrijgegeven_voor_levering:
            mailer_queue_email(opdracht.to_email,
                               opdracht.subject,
                               opdracht.mail_body)

        # success
        return True