def send_team_member_account_activation_email(token, email_address, framework, user_name, supplier_name): url = '{}{}/create-user/{}?e={}'.format( current_app.config['FRONTEND_ADDRESS'], get_root_url(framework), token, quote_plus(email_address)) email_body = render_email_template( 'seller_edit_team_member_create_user_email.md', url=url, user_name=user_name, supplier_name=supplier_name, frontend_url=current_app.config['FRONTEND_ADDRESS']) try: send_or_handle_error( email_address, email_body, current_app.config['INVITE_EMAIL_SUBJECT'], current_app.config['INVITE_EMAIL_FROM'], current_app.config['INVITE_EMAIL_NAME'], ) session['email_sent_to'] = email_address except EmailError as e: rollbar.report_exc_info() current_app.logger.error( 'Invitation email failed to send. ' 'error {error} email_hash {email_hash}', extra={ 'error': six.text_type(e), 'email_hash': hash_email(email_address) })
def send_reset_password_email(framework_slug): json_payload = get_json_from_request() email_address = json_payload.get('email_address', None) if email_address is None: return jsonify( message='One or more required args were missing from the request' ), 400 user = User.query.filter(User.email_address == email_address).first() if user is None: return jsonify(email_address=email_address), 200 app_root_url = get_root_url(framework_slug) try: reset_password_token = generate_reset_password_token( email_address, user.id) reset_password_url = '{}{}/reset-password/{}'.format( current_app.config['FRONTEND_ADDRESS'], app_root_url, quote(reset_password_token)) send_reset_password_confirm_email(email_address=email_address, url=reset_password_url, locked=user.locked, framework=framework_slug) except Exception as error: return jsonify(message=error.message), 400 return jsonify(email_address=email_address, token=reset_password_token), 200
def send_reset_password_email(): json_payload = get_json_from_request() email_address = json_payload.get('email_address', None) framework_slug = json_payload.get('framework', None) if email_address is None: return jsonify(message='One or more required args were missing from the request'), 400 user = User.query.filter( User.email_address == email_address.lower()).first() if user is None: return jsonify(email_address=email_address), 200 app_root_url = get_root_url(framework_slug) try: user_data = { 'user_id': user.id } claim = user_claims_service.make_claim(type='password_reset', email_address=email_address, data=user_data) if not claim: return jsonify(message="There was an issue completing the password reset process."), 500 publish_tasks.user_claim.delay( publish_tasks.compress_user_claim(claim), 'created' ) send_reset_password_confirm_email( token=claim.token, email_address=email_address, locked=user.locked, framework=framework_slug ) except Exception as error: return jsonify(message=error.message), 400 return jsonify( email_address=email_address ), 200