Example #1
0
def send_verification_code(request, user, mobile_number, reference=None, code=None):
    if code is None or reference is None:
        reference, code = new_verification_code(request, 'phone', mobile_number, user, hasher=get_short_hash)

    user_language = request.context.get_preferred_language()
    request.msgrelay.mobile_validator(reference, mobile_number, code, user_language)
    request.stats.count('mobile_number_send_verification_code')
Example #2
0
def send_verification_mail(request, email, code=None):
    mailer = get_mailer(request)
    if code is None:
        code = new_verification_code(request, "mailAliases", email, request.context.user, hasher=get_short_hash)

    verification_link = generate_verification_link(request, code, "mailAliases")

    site_name = request.registry.settings.get("site.name", "eduID")

    context = {
        "email": email,
        "verification_link": verification_link,
        "site_url": request.context.safe_route_url("home"),
        "site_name": site_name,
        "code": code,
    }

    message = Message(
        subject=_("{site_name} confirmation email").format(site_name=site_name),
        sender=request.registry.settings.get("mail.default_sender"),
        recipients=[email],
        body=render("templates/verification_email.txt.jinja2", context, request),
        html=render("templates/verification_email.html.jinja2", context, request),
    )

    mailer.send(message)
Example #3
0
    def resend_code_action(self, index, post_data):
        self.user = get_session_user(self.request)
        data = self.user.to_dict().get(self.data_attribute, [])

        # Catch the unlikely event when the user have e.g. removed all entries
        # in a separate tab, or one in the middle and then tries to resend the
        # code for a non-existing entry.
        # This is an incomplete fix since it is better if we can get the list
        # from the UI and then check that the entry which the client want to
        # resend the code for corresponds to the same entry we get from
        # data[index].
        try:
            data_to_resend = data[index]
        except IndexError:
            log.warning('Index error in resend_code_action, user {!s}'.format(self.user))
            message = self.verify_messages['out_of_sync']
            return {
                'result': 'out_of_sync',
                'message': get_localizer(self.request).translate(message),
            }

        data_id = self.get_verification_data_id(data_to_resend)
        reference, code = new_verification_code(
            self.request, self.data_attribute, data_id,
            self.user, hasher=get_short_hash,
        )
        self.send_verification_code(data_id, reference, code)
        msg = self.verify_messages['new_code_sent']
        return {
            'result': 'success',
            'message': msg,
        }
Example #4
0
def send_verification_code(request, user, mobile_number, code=None):
    if code is None:
        code = new_verification_code(request, 'mobile', mobile_number, user,
                                     hasher=get_short_hash)

    user_language = request.context.get_preferred_language()

    request.msgrelay.mobile_validator(mobile_number, code, user_language)
Example #5
0
    def add_by_letter_success(self, ninform):
        """
        This method is bound to the "add_by_letter"-button by it's name
        """
        form = self.schema.serialize(ninform)
        nin = normalize_nin(form['norEduPersonNIN'])
        session_user = get_session_user(self.request)

        # self.user needs to be a new user in get_template_context
        self.user = session_user

        result = letter_status(self.request, session_user, nin)
        if result['result'] == 'success':
            result2 = send_letter(self.request, session_user, nin)
            if result2['result'] == 'success':
                new_verification_code(self.request, 'norEduPersonNIN',
                                      nin, session_user)
            msg = result2['message']
        else:
            msg = result['message']
        self.request.session.flash(msg, queue='forms')
Example #6
0
    def add_by_letter_success(self, ninform):
        """
        This method is bound to the "add_by_letter"-button by it's name
        """
        form = self.schema.serialize(ninform)
        nin = normalize_nin(form['norEduPersonNIN'])
        session_user = get_session_user(self.request)

        # self.user needs to be a new user in get_template_context
        self.user = session_user

        result = letter_status(self.request, session_user, nin)
        if result['result'] == 'success':
            result2 = send_letter(self.request, session_user, nin)
            if result2['result'] == 'success':
                new_verification_code(self.request, 'norEduPersonNIN',
                                      nin, session_user)
            msg = result2['message']
        else:
            msg = result['message']
        self.request.session.flash(msg, queue='forms')
Example #7
0
def send_verification_code(request, user, nin, reference=None, code=None):
    """
    You need to replace the call to dummy_message with the govt
    message api
    """
    if code is None or reference is None:
        reference, code = new_verification_code(request, 'norEduPersonNIN', nin, user, hasher=get_short_hash)

    language = request.context.get_preferred_language()

    request.msgrelay.nin_validator(reference, nin, code, language, nin, message_type='mm')
    request.stats.count('dashboard/nin_send_verification_code', 1)
Example #8
0
def send_verification_code(request, user, nin, code=None):
    """
    You need to replace the call to dummy_message with the govt
    message api
    """

    if code is None:
        code = new_verification_code(request, 'norEduPersonNIN', nin, user,
                                     hasher=get_short_hash)

    language = request.context.get_preferred_language()

    request.msgrelay.nin_validator(nin, code, language)
Example #9
0
def send_verification_code(request,
                           user,
                           mobile_number,
                           reference=None,
                           code=None):
    if code is None or reference is None:
        reference, code = new_verification_code(request,
                                                'phone',
                                                mobile_number,
                                                user,
                                                hasher=get_short_hash)

    user_language = request.context.get_preferred_language()
    request.msgrelay.mobile_validator(reference, mobile_number, code,
                                      user_language)
    request.stats.count('mobile_number_send_verification_code')
Example #10
0
def send_verification_code(request, user, nin, reference=None, code=None):
    """
    You need to replace the call to dummy_message with the govt
    message api
    """

    # Always normalize the nin before usage
    nin = normalize_nin(nin)

    if code is None or reference is None:
        reference, code = new_verification_code(request, 'norEduPersonNIN', nin, user, hasher=get_short_hash)

    language = request.context.get_preferred_language()

    request.msgrelay.nin_validator(reference, nin, code, language, nin, message_type='mm')
    request.stats.count('nin_send_verification_code')
Example #11
0
def send_verification_mail(request, email, reference=None, code=None):
    mailer = get_mailer(request)
    if code is None or reference is None:
        reference, code = new_verification_code(request,
                                                'mailAliases',
                                                email,
                                                request.context.user,
                                                hasher=get_short_hash)

    verification_link = generate_verification_link(request, code,
                                                   'mailAliases')

    site_name = request.registry.settings.get("site.name", "eduID")

    context = {
        "email": email,
        "verification_link": verification_link,
        "site_url": request.context.safe_route_url("home"),
        "site_name": site_name,
        "code": code,
    }

    message = Message(
        subject=_("{site_name} confirmation email").format(
            site_name=site_name),
        sender=request.registry.settings.get("mail.default_sender"),
        recipients=[email],
        body=render(
            "templates/verification_email.txt.jinja2",
            context,
            request,
        ),
        html=render(
            "templates/verification_email.html.jinja2",
            context,
            request,
        ),
    )

    # DEBUG
    if request.registry.settings.get('developer_mode', False):
        log.debug(message.body)
    else:
        mailer.send(message)
    log.debug("Sent verification mail to user {!r} with address {!s}.".format(
        request.context.user, email))
    request.stats.count('email_send_verification_code')
Example #12
0
    def resend_code_action(self, index, post_data):
        data = self.user.get(self.data_attribute, [])
        data_to_resend = data[index]
        data_id = self.get_verification_data_id(data_to_resend)
        code = new_verification_code(
            self.request, self.data_attribute, data_id,
            self.user, hasher=get_short_hash,
        )
        self.send_verification_code(data_id, code)

        msg = self.verify_messages['new_code_sent']
        msg = get_localizer(self.request).translate(msg)

        return {
            'result': 'ok',
            'message': msg,
        }
Example #13
0
def send_verification_mail(request, email, reference=None, code=None):
    mailer = get_mailer(request)
    if code is None or reference is None:
        reference, code = new_verification_code(request, 'mailAliases', email, request.context.user,
                                     hasher=get_short_hash)

    verification_link = generate_verification_link(request, code,
                                                   'mailAliases')

    site_name = request.registry.settings.get("site.name", "eduID")

    context = {
        "email": email,
        "verification_link": verification_link,
        "site_url": request.context.safe_route_url("home"),
        "site_name": site_name,
        "code": code,
    }

    message = Message(
        subject=_("{site_name} confirmation email").format(
            site_name=site_name),
        sender=request.registry.settings.get("mail.default_sender"),
        recipients=[email],
        body=render(
            "templates/verification_email.txt.jinja2",
            context,
            request,
        ),
        html=render(
            "templates/verification_email.html.jinja2",
            context,
            request,
        ),
    )

    # DEBUG
    if request.registry.settings.get('developer_mode', False):
        log.debug(message.body)
    else:
        mailer.send(message)
    log.debug("Sent verification mail to user {!r} with address {!s}.".format(request.context.user, email))
    request.stats.count('dashboard/email_send_verification_code', 1)
Example #14
0
    def resend_code_action(self, index, post_data):
        self.user = get_session_user(self.request)
        data = self.user.to_dict().get(self.data_attribute, [])

        # Catch the unlikely event when the user have e.g. removed all entries
        # in a separate tab, or one in the middle and then tries to resend the
        # code for a non-existing entry.
        # This is an incomplete fix since it is better if we can get the list
        # from the UI and then check that the entry which the client want to
        # resend the code for corresponds to the same entry we get from
        # data[index].
        try:
            data_to_resend = data[index]
        except IndexError:
            log.warning('Index error in resend_code_action, user {!s}'.format(
                self.user))
            message = self.verify_messages['out_of_sync']
            return {
                'result': 'out_of_sync',
                'message': get_localizer(self.request).translate(message),
            }

        data_id = self.get_verification_data_id(data_to_resend)
        reference, code = new_verification_code(
            self.request,
            self.data_attribute,
            data_id,
            self.user,
            hasher=get_short_hash,
        )
        self.send_verification_code(data_id, reference, code)
        msg = self.verify_messages['new_code_sent']
        return {
            'result': 'success',
            'message': msg,
        }