예제 #1
0
def _register_user():
    session, reg_obj = fetch_registration()
    ulapd_api = UlapdAPI()

    user_type = 'personal-' + ('uk'
                               if reg_obj['country'] == 'UK' else 'overseas')
    data_dict = {
        'user_type': user_type,
        'email': reg_obj['email'],
        'title': reg_obj['title'],
        'first_name': reg_obj['first_name'],
        'last_name': reg_obj['last_name'],
        # 'contactable': True if reg_obj['research'] == 'yes' else False,
        'contact_preferences': reg_obj.get('contact_preferences', []),
        'telephone_number': reg_obj['phone'],
        'address_line_1': reg_obj['street_line_1'],
        'address_line_2': reg_obj['street_line_2'],
        'city': reg_obj['city'],
        'postcode': reg_obj['postcode'],
        'county': reg_obj['county'],
        'country': reg_obj['country']
    }

    user_response = ulapd_api.create_user(data_dict)
    session.pop('registration', None)
    dps_session.commit()
    return user_response
def _register_user():
    session, reg_obj = fetch_registration()
    ulapd_api = UlapdAPI()

    current_app.logger.info("!!!!!: " + str(reg_obj))

    data_dict = {
        'user_type': 'organisation-uk',
        'email': reg_obj['email'],
        'title': reg_obj['title'],
        'first_name': reg_obj['first_name'],
        'last_name': reg_obj['last_name'],
        'contact_preferences': reg_obj.get('contact_preferences', []),
        'telephone_number': reg_obj['uk_org_phone'],
        'organisation_name': reg_obj['uk_org_name'],
        'organisation_type': reg_obj['uk_org_type'],
        'registration_number': reg_obj.get('uk_org_reg_no', None),
        'address_line_1': reg_obj['uk_org_street_line_1'],
        'address_line_2': reg_obj['uk_org_street_line_2'],
        'city': reg_obj['uk_org_city'],
        'county': reg_obj['uk_org_county'],
        'postcode': reg_obj['uk_org_postcode'],
        'country': 'UK'
    }

    print(data_dict)

    user_response = ulapd_api.create_user(data_dict)
    session.pop('registration', None)
    dps_session.commit()
    return user_response
예제 #3
0
def _register_user():
    session, reg_obj = fetch_registration()
    ulapd_api = UlapdAPI()

    data_dict = {
        'user_type': 'organisation-overseas',
        'email': reg_obj['email'],
        'title': reg_obj['title'],
        'first_name': reg_obj['first_name'],
        'last_name': reg_obj['last_name'],
        'contact_preferences': reg_obj.get('contact_preferences', []),
        'telephone_number': reg_obj['overseas_org_phone'],
        'organisation_name': reg_obj['overseas_org_name'],
        'country_of_incorporation': reg_obj['overseas_org_country_incorp'],
        'country': reg_obj['overseas_org_country'],
        'address_line_1': reg_obj['overseas_org_street_line_1'],
        'address_line_2': reg_obj['overseas_org_street_line_2'],
        'city': reg_obj['overseas_org_city'],
        'postcode': reg_obj['overseas_org_postcode']
    }

    user_response = ulapd_api.create_user(data_dict)
    session.pop('registration', None)
    dps_session.commit()
    return user_response
예제 #4
0
def submit_user_type():
    session, reg_obj = fetch_registration()
    if "user_type" not in request.form:
        return render_template("app/registration/user_type.html", errors=True, registration=reg_obj)
    else:
        # Create the registration object if it doesn't exist
        if 'registration' not in session:
            session['registration'] = {}
        session['registration']['user_type'] = request.form['user_type']
        session['registration']['ip_address'] = request.remote_addr
        if 'changing_answers' in session['registration']:
            session['registration']['changing_answers'] = False
        dps_session.commit()
        return redirect(user_flow[request.form["user_type"]])
    def decorated(*args, **kwargs):
        try:
            if g.user:
                ulapd_api = UlapdAPI()
                session = dps_session.get_state()

                user_details = ulapd_api.get_user_details('email', g.user)
                session['user'].update(user_details)
                dps_session.commit()

            return f(*args, **kwargs)
        except Exception as e:
            raise ApplicationError(
                'Something went wrong when refreshing user session: {}'.format(
                    e))
예제 #6
0
def submit_address():
    if _session_invalid(['title']):
        return redirect('/registration/about-you-personal')

    address_type = collect_address_type(request.form)
    form = _add_address_type_validators(address_type)

    if form.is_valid():
        populate_session(address_type)
        dps_session.commit()
        return redirect('/registration/address-details-personal')
    else:
        return render_template('app/registration/address-type-personal.html',
                               error_title="There are errors on this page",
                               fields=form.validate())
def begin_verification():
    current_app.logger.info('Verifying user')
    session, reg_obj = fetch_registration()
    reference = 'HMLR Data Publication'
    response = request_payment(0, reference, 'Use land and property data',
                               reg_obj['user_type'])

    if response is None:
        current_app.logger.error('GovPay failure')
        return '/error'

    verification_details = get_verification_details(response)
    session['registration']['verification_details'] = verification_details
    dps_session.commit()

    return verification_details.next_url
예제 #8
0
def submit_address_uk():
    if _session_invalid(['uk_resident']):
        return redirect('/registration/address-type-personal')

    address_info = collect_address(request.form)
    form = _add_address_validators(address_info)

    if form.is_valid():
        session = populate_session(address_info)
        dps_session.commit()
        if 'changing_answers' in session['registration']:
            return redirect('/registration/check-your-answers-personal')
        return redirect('/registration/research')
    else:
        return render_template(
            'app/registration/address-details-personal.html',
            error_title="There are errors on this page",
            fields=form.validate())
def submit_personal_info():
    if _session_invalid('user_type'):
        return redirect('/registration')

    personal_info = collect_personal_info(request.form, 'org')

    form = add_personal_info_validators(personal_info, 'org')

    if form.is_valid():
        session = populate_session(personal_info)
        dps_session.commit()
        if 'changing_answers' in session['registration']:
            return redirect('/registration/check-your-answers-uk-organisation')
        return redirect('/registration/organisation-type')
    else:
        return render_template('app/registration/personal_information.html',
                               error_title="There are errors on this page",
                               route='about-you-uk-organisation',
                               fields=form.validate())
예제 #10
0
def submit_org_address():
    if _session_invalid(['overseas_org_country_incorp']):
        return redirect('/registration/about-your-organisation-overseas')

    org_info = collect_overseas_org_address(request.form)

    form = add_org_address_validators(org_info, 'overseas')

    if form.is_valid():
        session = populate_session(org_info, prefix='overseas_org_')
        dps_session.commit()
        if 'changing_answers' in session['registration']:
            return redirect(
                '/registration/check-your-answers-overseas-organisation')
        return redirect('/registration/research')
    else:
        return render_template('app/registration/org_address_overseas.html',
                               error_title="There are errors on this page",
                               fields=form.validate())
예제 #11
0
def handle_verification():
    if in_session('confirmed', journey=None):
        return redirect(url_for('registration_personal.confirmation'))

    if _session_invalid(['verification_details']):
        return redirect('app/registration/check-your-answers-personal')

    session, reg_obj = fetch_registration()
    # action = complete_verification(reg_obj['verification_details']['payment_id'])
    action = complete_verification(reg_obj['verification_details'][0])
    if action['state']['status'] in ['failed', 'error']:
        del session['registration']
        dps_session.commit()
        return redirect(url_for('general.get_list'))

    data_on_success = _register_user()
    if data_on_success:
        return redirect(url_for('registration_personal.confirmation'))
    else:
        return redirect('/error')
def submit_org_details():
    if _session_invalid(['uk_org_type']):
        return redirect('/registration/about-you-uk-organisation')

    company_details = collect_company_details(request.form)
    form = add_company_details_validators(company_details)

    if form.is_valid():
        session = populate_session(company_details, prefix='uk_org_')
        dps_session.commit()

        if 'changing_answers' in session['registration']:
            return redirect('/registration/check-your-answers-uk-organisation')

        return redirect('/registration/about-your-organisation-uk')

    else:
        return render_template('app/registration/company_details.html',
                               error_title="There are errors on this page",
                               fields=form.validate())
예제 #13
0
def submit_personal_info_page():
    if _session_invalid('user_type'):
        return redirect('/registration')

    personal_info = collect_personal_info(request.form, 'org')

    form = add_personal_info_validators(personal_info, 'org')

    if form.is_valid():
        session = populate_session(personal_info)
        dps_session.commit()

        # if user has HMLR email then they need to be directed to the uk org journey
        if is_hmlr_email(personal_info.email):
            return render_template(
                'app/registration/personal_information.html',
                error_title="There are errors on this page",
                route='about-you-overseas-organisation',
                fields={
                    'hmlr_email':
                    True,
                    'name':
                    'email',
                    'error':
                    'You cannot create a overseas organisation account using '
                    'a HM Land Registry email address',
                    'link':
                    '/registration/about-you-overseas-organisation-redirect',
                    'link_text':
                    'Create a UK organisation account'
                })
        else:
            if 'changing_answers' in session['registration']:
                return redirect(
                    '/registration/check-your-answers-overseas-organisation')
            return redirect('/registration/about-your-organisation-overseas')
    else:
        return render_template('app/registration/personal_information.html',
                               error_title="There are errors on this page",
                               route='about-you-overseas-organisation',
                               fields=form.validate())
def submit_org_info():
    if _session_invalid(['uk_org_type']):
        return redirect('/registration/about-you-uk-organisation')

    org_info = collect_organisation_info(request.form)
    bypass = False
    if org_info.type == 'Charity' or org_info.type == 'Company':
        bypass = True
    form = add_org_info_validators(org_info, bypass)

    if form.is_valid():
        session = populate_session(org_info, prefix='uk_org_')
        dps_session.commit()

        if 'changing_answers' in session['registration']:
            return redirect('/registration/check-your-answers-uk-organisation')
        return redirect('/registration/research')
    else:
        return render_template('app/registration/org_information_uk.html',
                               error_title="There are errors on this page",
                               fields=form.validate())
예제 #15
0
def submit_contact_preferences():

    preferences = request.form.getlist('preferences')
    preference_info = collect_preferences(request.form)
    form = _add_preference_validators(preferences)

    if form.is_valid():
        session = populate_session(preference_info)
        session['registration']['contact_preferences'] = preferences
        session['registration']['changing_answers'] = True
        dps_session.commit()
        if request.form['user_type'] == 'overseas-organisation':
            return redirect('/registration/check-your-answers-overseas-organisation')
        elif request.form['user_type'] == 'uk-organisation':
            return redirect('/registration/check-your-answers-uk-organisation')
        else:
            return redirect('/registration/check-your-answers-personal')
    else:
        return render_template('app/registration/contact_preferences.html',
                               error_title="There are errors on this page",
                               fields=form.validate())
    def before_request(self):
        g.user = None

        if dps_session.is_valid():
            sess = dps_session.populate_state(session)
            if 'user' in sess:
                email = sess['user']['principle']['email']
                g.user = email
                if not sess['user'].get('user_details'):
                    user_details = UlapdAPI().get_user_details('email', email)
                    sess['user'].update(user_details)
                    dps_session.commit()
            return

        if dps_session.is_set():
            current_app.logger.info('Session is already set')
        else:
            if dps_session.is_valid():
                dps_session.populate_state(session)
                current_app.logger.info('Session created')
            else:
                current_app.logger.info('Token expired')
def submit_org_type():
    if _session_invalid(['title']):
        return redirect('/registration/about-you-uk-organisation')

    org_type = collect_organisation_type(request.form)
    form = _add_org_type_validators(org_type)

    if form.is_valid():
        populate_session(org_type, prefix='uk_org_')
        dps_session.commit()

        if org_type.type == 'Company':
            return redirect('/registration/company-details')
        elif org_type.type == 'Charity':
            return redirect('/registration/charity-details')
        else:
            return redirect('/registration/about-your-organisation-uk')

    else:
        return render_template('app/registration/org_uk_type.html',
                               error_title="There are errors on this page",
                               fields=form.validate())
예제 #18
0
def redirect_journey():
    amend_session_user_type('uk-organisation')
    dps_session.commit()

    return redirect(
        url_for('registration_uk_organisation.get_personal_info_page'))