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')
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)
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, }
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)
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')
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)
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)
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')
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')
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, }
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)
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, }