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
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
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))
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
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())
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())
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())
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())
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())
def redirect_journey(): amend_session_user_type('uk-organisation') dps_session.commit() return redirect( url_for('registration_uk_organisation.get_personal_info_page'))