コード例 #1
0
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)
            })
コード例 #2
0
ファイル: users.py プロジェクト: waleedusman/orams
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
コード例 #3
0
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