diff options
author | M Somerville <matthew-github@dracos.co.uk> | 2020-09-24 14:39:59 +0100 |
---|---|---|
committer | M Somerville <matthew-github@dracos.co.uk> | 2020-09-25 13:28:14 +0100 |
commit | 22cc2b0e1e6bb2dd7bde7231ad7f7190737ce545 (patch) | |
tree | eef5e92b23415c4d90ac23dd59f0601f7d7abe27 | |
parent | 85a6b7df9bd0b1711637b39d5a63ed6434686b33 (diff) |
Split up two username fields.
Rename the not-logging-in username field to username_register.
Keep the sign-in field as username because that e.g. overlaps
with auth code in two-factor authentication.
22 files changed, 134 insertions, 97 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Report/New.pm b/perllib/FixMyStreet/App/Controller/Report/New.pm index 8f3261853..ad2649aa3 100644 --- a/perllib/FixMyStreet/App/Controller/Report/New.pm +++ b/perllib/FixMyStreet/App/Controller/Report/New.pm @@ -6,7 +6,7 @@ BEGIN { extends 'Catalyst::Controller'; } use utf8; use Encode; -use List::Util qw(first uniq); +use List::Util qw(uniq); use HTML::Entities; use Path::Class; use Utils; @@ -126,8 +126,10 @@ sub report_new_ajax : Path('mobile') : Args(0) { # Apps are sending email as username # Prepare for when they upgrade - if (!$c->get_param('username')) { - $c->set_param('username', $c->get_param('email')); + my $username_field = ( $c->get_param('submit_sign_in') || $c->get_param('password_sign_in') ) + ? 'username': 'username_register'; + if (!$c->get_param($username_field)) { + $c->set_param($username_field, $c->get_param('email')); } # create the report - loading a partial if available @@ -846,8 +848,14 @@ sub process_user : Private { my %params = map { $_ => $c->get_param($_) } qw( email name phone password_register fms_extra_title update_method ); - # Report form includes two username fields: #form_username_register and #form_username_sign_in - $params{username} = (first { $_ } $c->get_param_list('username')) || ''; + if ($c->user_exists) { + $params{username} = $c->get_param('username'); + } elsif ($c->get_param('submit_sign_in') || $c->get_param('password_sign_in')) { + $params{username} = $c->get_param('username'); + } else { + $params{username} = $c->get_param('username_register'); + } + $params{username} ||= ''; my $anon_button = $c->cobrand->allow_anonymous_reports eq 'button' && $c->get_param('report_anonymously'); my $anon_fallback = $c->cobrand->allow_anonymous_reports eq '1' && !$c->user_exists && !$params{username}; @@ -915,8 +923,7 @@ sub process_user : Private { my $parsed = FixMyStreet::SMS->parse_username($params{username}); my $type = $parsed->{type} || 'email'; $type = 'email' unless FixMyStreet->config('SMS_AUTHENTICATION') || $c->stash->{contributing_as_another_user}; - $report->user( $c->model('DB::User')->find_or_new( { $type => $parsed->{username} } ) ) - unless $report->user; + $report->user( $c->model('DB::User')->find_or_new( { $type => $parsed->{username} } ) ); $c->stash->{phone_may_be_mobile} = $type eq 'phone' && $parsed->{may_be_mobile}; diff --git a/perllib/FixMyStreet/App/Controller/Report/Update.pm b/perllib/FixMyStreet/App/Controller/Report/Update.pm index 0fbdc6ce2..02d3d2ae8 100644 --- a/perllib/FixMyStreet/App/Controller/Report/Update.pm +++ b/perllib/FixMyStreet/App/Controller/Report/Update.pm @@ -6,7 +6,6 @@ BEGIN { extends 'Catalyst::Controller'; } use utf8; use Path::Class; -use List::Util 'first'; use Utils; =head1 NAME @@ -103,8 +102,14 @@ sub process_user : Private { my %params = map { $_ => $c->get_param($_) } ( 'name', 'password_register', 'fms_extra_title' ); - # Update form includes two username fields: #form_username_register and #form_username_sign_in - $params{username} = (first { $_ } $c->get_param_list('username')) || ''; + if ($c->user_exists) { + $params{username} = $c->get_param('username'); + } elsif ($c->get_param('submit_sign_in') || $c->get_param('password_sign_in')) { + $params{username} = $c->get_param('username'); + } else { + $params{username} = $c->get_param('username_register'); + } + $params{username} ||= ''; my $anon_button = $c->cobrand->allow_anonymous_reports eq 'button' && $c->get_param('report_anonymously'); if ($anon_button) { @@ -145,8 +150,7 @@ sub process_user : Private { my $parsed = FixMyStreet::SMS->parse_username($params{username}); my $type = $parsed->{type} || 'email'; $type = 'email' unless FixMyStreet->config('SMS_AUTHENTICATION') || $c->stash->{contributing_as_another_user}; - $update->user( $c->model('DB::User')->find_or_new( { $type => $parsed->{username} } ) ) - unless $update->user; + $update->user( $c->model('DB::User')->find_or_new( { $type => $parsed->{username} } ) ); $c->stash->{phone_may_be_mobile} = $type eq 'phone' && $parsed->{may_be_mobile}; diff --git a/t/app/controller/auth_social.t b/t/app/controller/auth_social.t index 1f6889dcc..9d1ea836f 100644 --- a/t/app/controller/auth_social.t +++ b/t/app/controller/auth_social.t @@ -241,7 +241,8 @@ for my $state ( 'refused', 'no email', 'existing UID', 'okay' ) { $mech->content_contains('We need your email address, please give it below.'); # We don't have an email, so check that we can still submit it, # and the ID carries through the confirmation - $fields->{username} = $test->{email}; + $fields->{username} = $test->{email} if $page eq 'my'; + $fields->{username_register} = $test->{email} unless $page eq 'my'; $fields->{name} = 'Ffion Tester' unless $page eq 'my'; $mech->submit_form(with_fields => $fields, $page eq 'my' ? (button => 'sign_in_by_code') : ()); $mech->content_contains('Nearly done! Now check your email'); @@ -408,7 +409,8 @@ for my $tw_state ( 'refused', 'existing UID', 'no email' ) { $mech->content_contains('We need your email address, please give it below.'); # We don't have an email, so check that we can still submit it, # and the ID carries through the confirmation - $fields->{username} = $tw_email; + $fields->{username_register} = $tw_email unless $page eq 'my'; + $fields->{username} = $tw_email if $page eq 'my'; $fields->{name} = 'Ffion Tester' unless $page eq 'my'; $mech->submit_form(with_fields => $fields, $page eq 'my' ? (button => 'sign_in_by_code') : ()); $mech->content_contains('Nearly done! Now check your email'); diff --git a/t/app/controller/contact_enquiry.t b/t/app/controller/contact_enquiry.t index feb2a0545..f1b5b15cd 100644 --- a/t/app/controller/contact_enquiry.t +++ b/t/app/controller/contact_enquiry.t @@ -80,7 +80,7 @@ FixMyStreet::override_config { $mech->submit_form_ok( { with_fields => { name => 'Test User', - username => 'testuser@example.org', + username_register => 'testuser@example.org', category => 'Other', detail => 'This is a general enquiry', } @@ -149,7 +149,7 @@ FixMyStreet::override_config { $mech->submit_form_ok( { with_fields => { name => 'Simon Neil', - username => $user->email, + username_register => $user->email, category => 'General Enquiry', detail => 'This is a general enquiry', } @@ -212,7 +212,7 @@ FixMyStreet::override_config { submit_problem => 1, token => $csrf, name => 'Test User', - username => 'testuser@example.org', + username_register => 'testuser@example.org', category => 'Other', detail => encode_utf8('This is a general enquiry‽'), photo1 => [ $sample_jpeg, undef, Content_Type => 'image/jpeg' ], diff --git a/t/app/controller/report_display.t b/t/app/controller/report_display.t index 4bd0fc991..00c7bf19b 100644 --- a/t/app/controller/report_display.t +++ b/t/app/controller/report_display.t @@ -109,7 +109,7 @@ subtest "test a good report" => sub { my %fields = ( name => '', - username => '', + username_register => '', update => '', add_alert => 1, # defaults to true fixed => undef diff --git a/t/app/controller/report_import.t b/t/app/controller/report_import.t index b2e15330a..7b5ede7a9 100644 --- a/t/app/controller/report_import.t +++ b/t/app/controller/report_import.t @@ -376,7 +376,7 @@ subtest "Submit a correct entry (with location) to cobrand" => sub { photo2 => '', photo3 => '', phone => '', - username => 'test-ll@example.com', + username_register => 'test-ll@example.com', }, "check imported fields are shown" or diag Dumper( $mech->visible_form_values ); use Data::Dumper; diff --git a/t/app/controller/report_new.t b/t/app/controller/report_new.t index 6af709c2c..b0c93c332 100644 --- a/t/app/controller/report_new.t +++ b/t/app/controller/report_new.t @@ -156,7 +156,7 @@ foreach my $test ( photo1 => '', name => 'Joe Bloggs', may_show_name => '1', - username => 'test-1@example.com', + username_register => 'test-1@example.com', phone => '07903 123 456', category => 'Street lighting', password_register => $test->{password} ? 'secret' : '', @@ -680,7 +680,7 @@ subtest "test report creation for a category that is non public" => sub { title => 'Test Report', detail => 'Test report details.', photo1 => '', - username => $user->email, + username_register => $user->email, name => 'Joe Bloggs', category => 'Street lighting', } @@ -940,7 +940,7 @@ for my $test ( title => "Test Report", detail => 'Test report details.', photo1 => '', - username => 'firstlast@example.com', + username_register => 'firstlast@example.com', may_show_name => '1', phone => '07903 123 456', category => 'Trees', @@ -1085,7 +1085,7 @@ subtest "test Hart" => sub { $mech->submit_form_ok( { with_fields => { pc => 'GU51 4AE' } }, "submit location" ); $mech->follow_link_ok( { text_regex => qr/skip this step/i, }, "follow 'skip this step' link" ); my %optional_fields = $test->{confirm} ? () : - ( username => $test_email, phone => '07903 123 456' ); + ( username_register => $test_email, phone => '07903 123 456' ); # we do this as otherwise test::www::mechanize::catalyst # goes to the value set in ->host above irregardless and @@ -1279,7 +1279,7 @@ subtest "extra google analytics code displayed on email confirmation problem cre title => "Test Report", detail => 'Test report details.', photo1 => '', - username => 'firstlast@example.com', + username_register => 'firstlast@example.com', name => 'Test User', may_show_name => '1', phone => '07903 123 456', diff --git a/t/app/controller/report_new_errors.t b/t/app/controller/report_new_errors.t index c82a5fa13..470cb7d79 100644 --- a/t/app/controller/report_new_errors.t +++ b/t/app/controller/report_new_errors.t @@ -112,6 +112,7 @@ foreach my $test ( photo3 => '', name => '', may_show_name => '1', + username_register => '', username => '', phone => '', password_sign_in => '', @@ -137,6 +138,7 @@ foreach my $test ( photo3 => '', name => '', may_show_name => '1', + username_register => '', username => '', phone => '', category => 'Something bad', @@ -165,6 +167,7 @@ foreach my $test ( photo3 => '', name => '', may_show_name => '1', + username_register => '', username => '', phone => '', category => 'Street lighting', @@ -190,6 +193,7 @@ foreach my $test ( photo3 => '', name => '', may_show_name => undef, + username_register => '', username => '', phone => '', category => 'Street lighting', @@ -215,6 +219,7 @@ foreach my $test ( photo3 => '', name => 'Bob Jones', may_show_name => undef, + username_register => '', username => '', phone => '', category => 'Street lighting', @@ -239,6 +244,7 @@ foreach my $test ( photo3 => '', name => 'Bob Jones', may_show_name => '1', + username_register => '', username => '', phone => '', category => 'Street lighting', @@ -263,6 +269,7 @@ foreach my $test ( photo3 => '', name => 'Bob Jones', may_show_name => '1', + username_register => '', username => '', phone => '', category => 'Street lighting', @@ -287,6 +294,7 @@ foreach my $test ( photo3 => '', name => 'DUDE', may_show_name => '1', + username_register => '', username => '', phone => '', category => 'Street lighting', @@ -310,6 +318,7 @@ foreach my $test ( photo3 => '', name => 'anonymous', may_show_name => '1', + username_register => '', username => '', phone => '', category => 'Street lighting', @@ -333,13 +342,14 @@ foreach my $test ( photo3 => '', name => 'Joe Smith', may_show_name => '1', - username => 'not an email', + username_register => 'not an email', + username => '', phone => '', category => 'Street lighting', password_sign_in => '', password_register => '', }, - changes => { username => 'notanemail' }, + changes => {}, errors => [ 'Please enter a valid email', ], }, { @@ -353,6 +363,7 @@ foreach my $test ( photo3 => '', name => '', may_show_name => '1', + username_register => '', username => '', phone => '', category => 'Street lighting', @@ -379,7 +390,8 @@ foreach my $test ( photo3 => '', name => ' Bob Jones ', may_show_name => '1', - username => ' BOB @ExAmplE.COM ', + username_register => ' BOB @ExAmplE.COM ', + username => '', phone => '', category => 'Street lighting', password_sign_in => '', @@ -387,7 +399,6 @@ foreach my $test ( }, changes => { name => 'Bob Jones', - username => 'bob@example.com', }, errors => [ 'Please enter a subject', 'Please enter some details', ], }, @@ -402,7 +413,8 @@ foreach my $test ( photo3 => '', name => 'Bob Jones', may_show_name => '1', - username => 'bob@example.com', + username_register => 'bob@example.com', + username => '', phone => '', category => 'Street lighting', password_sign_in => '', @@ -424,7 +436,8 @@ foreach my $test ( photo3 => '', name => 'Bob Jones', may_show_name => '1', - username => 'bob@example.com', + username_register => 'bob@example.com', + username => '', phone => '', category => 'Street lighting', password_sign_in => '', @@ -446,7 +459,8 @@ foreach my $test ( photo3 => '', name => 'Bob Jones', may_show_name => '1', - username => 'bob@example.com', + username_register => 'bob@example.com', + username => '', phone => '', category => 'Street lighting', password_sign_in => '', @@ -468,14 +482,14 @@ foreach my $test ( photo3 => '', name => 'Joe Smith', may_show_name => '1', - username => 'user@example.com', + username_register => 'user@example.com', + username => '', phone => '', category => 'Street lighting', password_sign_in => '', password_register => '', }, changes => { - username => 'user@example.com', title => 'User@example.com' }, errors => [ 'Please make sure you are not including an email address', ], @@ -492,7 +506,8 @@ foreach my $test ( photo3 => '', name => 'Bob Example', may_show_name => '1', - username => 'bob@example.com', + username_register => 'bob@example.com', + username => '', phone => '', category => 'Trees', password_sign_in => '', @@ -512,7 +527,8 @@ foreach my $test ( photo3 => '', name => 'Bob Example', may_show_name => '1', - username => 'bob@example.com', + username_register => 'bob@example.com', + username => '', phone => '', category => 'Trees', password_sign_in => '', @@ -532,7 +548,8 @@ foreach my $test ( photo3 => '', name => 'Bob Example', may_show_name => '1', - username => 'bob@example.com', + username_register => 'bob@example.com', + username => '', phone => '123456789 12345678910', category => 'Trees', password_sign_in => '', @@ -552,7 +569,8 @@ foreach my $test ( photo3 => '', name => 'This is a very long name that should fail validation', may_show_name => '1', - username => 'bob@example.com', + username_register => 'bob@example.com', + username => '', phone => '', category => 'Street lighting', password_sign_in => '', @@ -572,7 +590,8 @@ foreach my $test ( photo3 => '', name => 'This is a very long name that should fail validation', may_show_name => '1', - username => 'bob@example.com', + username_register => 'bob@example.com', + username => '', phone => '', category => 'Trees', password_sign_in => '', @@ -592,7 +611,8 @@ foreach my $test ( photo3 => '', name => 'This is a really extraordinarily long name that definitely should fail validation', may_show_name => '1', - username => 'bob.has.a.very.long.email@thisisalonghostname.example.com', + username_register => 'bob.has.a.very.long.email@thisisalonghostname.example.com', + username => '', phone => '01234 5678910 09876 54321 ext 203', category => 'Trees', password_sign_in => '', @@ -612,7 +632,8 @@ foreach my $test ( photo3 => '', name => 'A User', may_show_name => '1', - username => 'user@example.org', + username_register => 'user@example.org', + username => '', phone => '', category => 'Trees', password_sign_in => '', @@ -632,7 +653,8 @@ foreach my $test ( photo3 => '', name => 'A User', may_show_name => '1', - username => 'user@example.org', + username_register => 'user@example.org', + username => '', phone => '', category => 'Trees', password_sign_in => '', diff --git a/t/app/controller/report_new_open311.t b/t/app/controller/report_new_open311.t index 9a8063a84..ebbb06567 100644 --- a/t/app/controller/report_new_open311.t +++ b/t/app/controller/report_new_open311.t @@ -108,7 +108,8 @@ my $empty_form = { photo3 => '', name => '', may_show_name => '1', - username => '', + username_register => '', + username => '', phone => '', category => '', password_sign_in => '', @@ -137,7 +138,7 @@ foreach my $test ( title => 'test', detail => 'test detail', name => 'Test User', - username => 'testopen311@example.com', + username_register => 'testopen311@example.com', category => 'Street lighting', number => 27, type => 'old', @@ -177,7 +178,7 @@ foreach my $test ( title => 'test', detail => 'test detail', name => 'Test User', - username => 'testopen311@example.com', + username_register => 'testopen311@example.com', size => 'big', colour => 'red', }, @@ -201,7 +202,7 @@ foreach my $test ( $mech->clear_emails_ok; # check that the user does not exist - my $test_email = $test->{submit_with}->{username}; + my $test_email = $test->{submit_with}->{username_register}; my $user = FixMyStreet::DB->resultset('User')->find( { email => $test_email } ); if ( $user ) { $user->problems->delete; @@ -452,7 +453,7 @@ subtest "Category extras includes form disabling string" => sub { # Test submission of whole form, switching back to a blocked category at the same time $mech->submit_form_ok({ with_fields => { category => 'Pothole', title => 'Title', detail => 'Detail', - username => 'testing@example.org', name => 'Testing Example', + username_register => 'testing@example.org', name => 'Testing Example', } }); $mech->content_contains('<div id="js-category-stopper" class="box-warning" role="alert" aria-live="assertive">'); $mech->content_contains('Please ring us!'); diff --git a/t/app/controller/report_new_text.t b/t/app/controller/report_new_text.t index 9256a00de..8753e7e20 100644 --- a/t/app/controller/report_new_text.t +++ b/t/app/controller/report_new_text.t @@ -42,7 +42,7 @@ foreach my $test ( %defaults, }, changes => { - username => 'bademail', + username => '', }, errors => [ 'Please enter a valid email' ], }, @@ -54,7 +54,7 @@ foreach my $test ( %defaults, }, changes => { - username => '01214960000000', + username => '', phone => '01214960000000', }, errors => [ 'Please check your phone number is correct' ], @@ -67,7 +67,7 @@ foreach my $test ( %defaults, }, changes => { - username => '0121 496 0000', + username => '', phone => '0121 496 0000', }, errors => [ 'Please enter a mobile number', ], diff --git a/t/app/controller/report_new_unresponsive.t b/t/app/controller/report_new_unresponsive.t index 033475c25..211f7198d 100644 --- a/t/app/controller/report_new_unresponsive.t +++ b/t/app/controller/report_new_unresponsive.t @@ -107,7 +107,7 @@ sub make_report { detail => 'Test report details.', photo1 => '', name => 'Joe Bloggs', - username => $user->email, + username_register => $user->email, may_show_name => '1', phone => '07903 123 456', category => 'Trees', diff --git a/t/app/controller/report_update_text.t b/t/app/controller/report_update_text.t index 52f221264..3f9a73773 100644 --- a/t/app/controller/report_update_text.t +++ b/t/app/controller/report_update_text.t @@ -62,7 +62,8 @@ for my $test ( { desc => 'Invalid phone', fields => { - username => '01214960000000', + username_register => '01214960000000', + username => '', update => 'Update', name => 'Name', photo1 => '', @@ -80,7 +81,8 @@ for my $test ( { desc => 'landline number', fields => { - username => '01214960000', + username_register => '01214960000', + username => '', update => 'Update', name => 'Name', photo1 => '', @@ -92,9 +94,7 @@ for my $test ( password_register => '', password_sign_in => '', }, - changes => { - username => '0121 496 0000', - }, + changes => {}, field_errors => [ 'Please enter a mobile number' ] }, ) @@ -126,7 +126,7 @@ for my $test ( desc => 'submit an update, unregistered, logged out', form_values => { submit_update => 1, - username => $test_phone, + username_register => $test_phone, update => 'Update from an unregistered user', add_alert => undef, name => 'Unreg User', @@ -137,7 +137,7 @@ for my $test ( desc => 'submit an update, unregistered, logged out, sign up for alerts', form_values => { submit_update => 1, - username => $test_phone, + username_register => $test_phone, update => 'Update from an unregistered user', add_alert => 1, name => 'Unreg User', @@ -149,7 +149,7 @@ for my $test ( registered => 1, form_values => { submit_update => 1, - username => $test_phone, + username_register => $test_phone, update => 'Update from a registered user', add_alert => undef, name => 'Reg User', @@ -194,7 +194,7 @@ for my $test ( ok $update, 'found update in database'; is $update->state, 'unconfirmed', 'update unconfirmed'; my $details = $test->{form_values}; - is $update->user->phone, $details->{username}, 'update phone'; + is $update->user->phone, $details->{username_register}, 'update phone'; is $update->user->phone_verified, 1; is $update->text, $details->{update}, 'update text'; is $add_alerts, $details->{add_alert} ? 1 : 0, 'do not sign up for alerts'; @@ -211,7 +211,7 @@ for my $test ( ok $user->check_password( 'new_secret' ), 'password changed'; is $user->name, 'Reg User', 'name changed'; } else { - $user = FixMyStreet::DB->resultset( 'User' )->find( { phone => $details->{username} } ); + $user = FixMyStreet::DB->resultset( 'User' )->find( { phone => $details->{username_register} } ); ok $user, 'found user'; } diff --git a/t/app/controller/report_updates.t b/t/app/controller/report_updates.t index 7ae5ed7b2..760a5a45b 100644 --- a/t/app/controller/report_updates.t +++ b/t/app/controller/report_updates.t @@ -272,7 +272,8 @@ for my $test ( { desc => 'No email, no message', fields => { - username => '', + username_register => '', + username => '', update => '', name => '', photo1 => '', @@ -290,7 +291,8 @@ for my $test ( { desc => 'Invalid email, no message', fields => { - username => 'test', + username_register => 'test', + username => '', update => '', name => '', photo1 => '', @@ -308,7 +310,8 @@ for my $test ( { desc => 'email with spaces, no message', fields => { - username => 'test @ example. com', + username_register => 'test @ example. com', + username => '', update => '', name => '', photo1 => '', @@ -320,15 +323,14 @@ for my $test ( password_register => '', password_sign_in => '', }, - changes => { - username => 'test@example.com', - }, + changes => {}, field_errors => [ 'Please enter a message', 'Please enter your name' ] }, { desc => 'email with uppercase, no message', fields => { - username => 'test@EXAMPLE.COM', + username_register => 'test@EXAMPLE.COM', + username => '', update => '', name => '', photo1 => '', @@ -340,9 +342,7 @@ for my $test ( password_register => '', password_sign_in => '', }, - changes => { - username => 'test@example.com', - }, + changes => {}, field_errors => [ 'Please enter a message', 'Please enter your name' ] }, ) @@ -369,6 +369,7 @@ for my $test ( desc => 'submit an update for a non registered user', initial_values => { name => '', + username_register => '', username => '', may_show_name => undef, add_alert => 1, @@ -382,7 +383,7 @@ for my $test ( }, form_values => { submit_update => 1, - username => 'unregistered@example.com', + username_register => 'unregistered@example.com', update => 'Update from an unregistered user', add_alert => undef, name => 'Unreg User', @@ -394,6 +395,7 @@ for my $test ( desc => 'submit an update for a non registered user and sign up', initial_values => { name => '', + username_register => '', username => '', may_show_name => undef, add_alert => 1, @@ -407,7 +409,7 @@ for my $test ( }, form_values => { submit_update => 1, - username => 'unregistered@example.com', + username_register => 'unregistered@example.com', update => "update from an\r\n\r\nunregistered user", add_alert => 1, name => 'Unreg User', @@ -465,14 +467,14 @@ for my $test ( ok $update, 'found update in database'; is $update->state, 'unconfirmed', 'update unconfirmed'; - is $update->user->email, $details->{username}, 'update email'; + is $update->user->email, $details->{username_register}, 'update email'; is $update->text, $details->{update}, 'update text'; is $add_alerts, $details->{add_alert} ? 1 : 0, 'do not sign up for alerts'; $mech->get_ok( $url ); $mech->content_contains("/report/$report_id#update_$update_id"); - my $unreg_user = FixMyStreet::DB->resultset( 'User' )->find( { email => $details->{username} } ); + my $unreg_user = FixMyStreet::DB->resultset( 'User' )->find( { email => $details->{username_register} } ); ok $unreg_user, 'found user'; @@ -497,6 +499,7 @@ for my $test ( desc => 'overriding email confirmation allows report confirmation with no email sent', initial_values => { name => '', + username_register => '', username => '', may_show_name => undef, add_alert => 1, @@ -510,7 +513,7 @@ for my $test ( }, form_values => { submit_update => 1, - username => 'unregistered@example.com', + username_register => 'unregistered@example.com', update => "update no email confirm", add_alert => 1, name => 'Unreg User', @@ -562,10 +565,10 @@ for my $test ( ok $update, 'found update in database'; is $update->state, 'confirmed', 'update confirmed'; - is $update->user->email, $details->{username}, 'update email'; + is $update->user->email, $details->{username_register}, 'update email'; is $update->text, $details->{update}, 'update text'; - my $unreg_user = FixMyStreet::DB->resultset( 'User' )->find( { email => $details->{username} } ); + my $unreg_user = FixMyStreet::DB->resultset( 'User' )->find( { email => $details->{username_register} } ); ok $unreg_user, 'found user'; @@ -1323,7 +1326,7 @@ subtest 'submit an update for a registered user, creating update by email' => su $mech->submit_form_ok( { with_fields => { submit_update => 1, - username => $user->email, + username_register => $user->email, update => 'Update from a user', add_alert => undef, name => 'New Name', @@ -1772,7 +1775,7 @@ for my $test ( fields => { submit_update => 1, name => 'Test User', - username => $report->user->email, + username_register => $report->user->email, may_show_name => 1, update => 'update from owner', add_alert => undef, @@ -1794,7 +1797,7 @@ for my $test ( submit_update => 1, name => 'Test User', may_show_name => 1, - username => $report->user->email, + username_register => $report->user->email, update => 'update from owner', add_alert => undef, fixed => 1, @@ -1859,7 +1862,7 @@ for my $test ( my $update = $report->comments->first; ok $update, 'found update'; is $update->text, $results->{update}, 'update text'; - is $update->user->email, $test->{fields}->{username}, 'update user'; + is $update->user->email, $test->{fields}->{username_register}, 'update user'; is $update->state, 'unconfirmed', 'update confirmed'; is $update->anonymous, $test->{anonymous}, 'user anonymous'; diff --git a/t/cobrand/bromley.t b/t/cobrand/bromley.t index 6a7a60811..d26b10709 100644 --- a/t/cobrand/bromley.t +++ b/t/cobrand/bromley.t @@ -123,7 +123,7 @@ for my $test ( cobrand => 'bromley', fields => { submit_update => 1, - username => 'unregistered@example.com', + username_register => 'unregistered@example.com', update => 'Update from an unregistered user', add_alert => undef, first_name => 'Unreg', @@ -136,7 +136,7 @@ for my $test ( cobrand => 'fixmystreet', fields => { submit_update => 1, - username => 'unregistered@example.com', + username_register => 'unregistered@example.com', update => 'Update from an unregistered user', add_alert => undef, name => 'Unreg User', diff --git a/t/cobrand/form_extras.t b/t/cobrand/form_extras.t index 3807dd56a..72c725d75 100644 --- a/t/cobrand/form_extras.t +++ b/t/cobrand/form_extras.t @@ -41,7 +41,7 @@ FixMyStreet::override_config { detail => 'Test report details.', name => 'Joe Bloggs', may_show_name => '1', - username => 'test-1@example.com', + username_register => 'test-1@example.com', password_register => '', } }, diff --git a/t/cobrand/hackney.t b/t/cobrand/hackney.t index 6ab47a7ce..8022d562a 100644 --- a/t/cobrand/hackney.t +++ b/t/cobrand/hackney.t @@ -178,7 +178,7 @@ subtest "sends branded confirmation emails" => sub { detail => 'Test report details.', photo1 => '', name => 'Joe Bloggs', - username => 'test-1@example.com', + username_register => 'test-1@example.com', category => 'Roads', } }, diff --git a/t/cobrand/isleofwight.t b/t/cobrand/isleofwight.t index 303cdbc07..ad9017e26 100644 --- a/t/cobrand/isleofwight.t +++ b/t/cobrand/isleofwight.t @@ -481,7 +481,7 @@ subtest "sends branded confirmation emails" => sub { detail => 'Test report details.', photo1 => '', name => 'Joe Bloggs', - username => 'test-1@example.com', + username_register => 'test-1@example.com', category => 'Roads', } }, diff --git a/t/cobrand/zurich.t b/t/cobrand/zurich.t index 2992a37e7..c73bd01e1 100644 --- a/t/cobrand/zurich.t +++ b/t/cobrand/zurich.t @@ -907,7 +907,7 @@ subtest "photo must be supplied for categories that require it" => sub { $mech->get_ok('/report/new?lat=47.381817&lon=8.529156'); $mech->submit_form_ok({ with_fields => { detail => 'Problem-Bericht', - username => 'user@example.org', + username_register => 'user@example.org', category => 'Graffiti - photo required', }}); is $mech->res->code, 200, "missing photo shouldn't return anything but 200"; diff --git a/templates/web/base/contact/enquiry/index.html b/templates/web/base/contact/enquiry/index.html index 33bdbed5a..b19c5181b 100644 --- a/templates/web/base/contact/enquiry/index.html +++ b/templates/web/base/contact/enquiry/index.html @@ -19,7 +19,7 @@ [% IF field_errors.username_register %] <div class="form-error">[% field_errors.username_register %]</div> [% END %] - <input type="text" class="form-control required email" name="username" id="form_email" [% "disabled" IF c.user.email %] value="[% ( email OR c.user.email ) | html %]" size="30"> + <input type="text" class="form-control required email" name="username_register" id="form_email" [% "disabled" IF c.user.email %] value="[% ( email OR c.user.email ) | html %]" size="30"> <div class="form-group"> <label for="form_phone">[% loc('Your phone number') %]</label> diff --git a/templates/web/base/report/form/user_loggedout_email.html b/templates/web/base/report/form/user_loggedout_email.html index f3163dc5c..db3604d54 100644 --- a/templates/web/base/report/form/user_loggedout_email.html +++ b/templates/web/base/report/form/user_loggedout_email.html @@ -2,18 +2,17 @@ [% IF c.config.SMS_AUTHENTICATION %] [% SET username_label = loc('Your email or mobile') %] [% SET username_type = 'text' %] - [% SET username_value = object.user.username %] [% ELSE %] [% SET username_label = loc('Your email') %] [% SET username_type = 'email' %] - [% SET username_value = object.user.email %] [% END %] +[% SET username_field = (name == 'username_sign_in') ? 'username' : name ~%] <label for="form_[% name %]">[% username_label %]</label> [% IF field_errors.$name %] <p class='form-error'>[% field_errors.$name %]</p> [% END %] -<input type="[% username_type %]" name="username" id="form_[% name %]" - value="[% username_value | html %]" +<input type="[% username_type %]" name="[% username_field %]" id="form_[% name %]" + value="[% c.get_param(username_field) %]" class="form-control required"> <!-- /user_loggedout_email.html --> diff --git a/templates/web/bromley/report/form/user_loggedout_email.html b/templates/web/bromley/report/form/user_loggedout_email.html index 5672dbc43..e7f08a4a8 100644 --- a/templates/web/bromley/report/form/user_loggedout_email.html +++ b/templates/web/bromley/report/form/user_loggedout_email.html @@ -1,12 +1,11 @@ [% IF c.config.SMS_AUTHENTICATION %] [% SET username_label = loc('Your email or mobile') %] [% SET username_type = 'text' %] - [% SET username_value = object.user.username %] [% ELSE %] [% SET username_label = loc('Your email') %] [% SET username_type = 'email' %] - [% SET username_value = object.user.email %] [% END %] +[% SET username_field = (name == 'username_sign_in') ? 'username' : 'username_register' ~%] <label for="form_[% name %]">[% loc('Email' ) %] [% IF type == 'update' %] @@ -16,6 +15,6 @@ [% IF field_errors.$name %] <p class='form-error'>[% field_errors.$name %]</p> [% END %] -<input type="[% username_type %]" name="username" id="form_[% name %]" - value="[% username_value | html %]" +<input type="[% username_type %]" name="[% username_field %]" id="form_[% name %]" + value="[% c.get_param(username_field) %]" class="form-control required"> diff --git a/templates/web/zurich/report/new/fill_in_details_form.html b/templates/web/zurich/report/new/fill_in_details_form.html index b2861bf40..8d840c43e 100644 --- a/templates/web/zurich/report/new/fill_in_details_form.html +++ b/templates/web/zurich/report/new/fill_in_details_form.html @@ -54,7 +54,7 @@ [% IF field_errors.username_register %] <p class='form-error'>[% field_errors.username_register %]</p> [% END %] - <input class="form-control" type="email" value="[% email | html %]" name="username" id="form_username_register" required> + <input class="form-control" type="email" value="[% email | html %]" name="username_register" id="form_username_register" required> <label for="form_name">[% loc('Name') %] [% loc('(optional)') %]</label> [% IF field_errors.name %] |