aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Somerville <matthew-github@dracos.co.uk>2017-11-07 10:20:14 +0000
committerMatthew Somerville <matthew-github@dracos.co.uk>2017-11-07 10:20:14 +0000
commita26652ec2383d81eb9649e9d5b90485e574ccd55 (patch)
tree3cc7c022018506a71719c7600a53ba59f097bd53
parentb811bbb9571e58108d1bad3dbe995b4780b086f9 (diff)
Fix issue editing user previously lacking a name.
The check that a name was entered was testing the user's current name, not the name entered in the form.
-rw-r--r--perllib/FixMyStreet/App/Controller/Admin.pm7
-rw-r--r--t/app/controller/admin.t6
2 files changed, 9 insertions, 4 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm
index 82041a6b1..453ebed82 100644
--- a/perllib/FixMyStreet/App/Controller/Admin.pm
+++ b/perllib/FixMyStreet/App/Controller/Admin.pm
@@ -1430,6 +1430,7 @@ sub user_edit : Path('user_edit') : Args(1) {
my $edited = 0;
+ my $name = $c->get_param('name');
my $email = lc $c->get_param('email');
my $phone = $c->get_param('phone');
my $email_v = $c->get_param('email_verified') || 0;
@@ -1452,7 +1453,7 @@ sub user_edit : Path('user_edit') : Args(1) {
$phone = $parsed_phone if $parsed_phone;
}
- unless ($user->name) {
+ unless ($name) {
$c->stash->{field_errors}->{name} = _('Please enter a name');
}
@@ -1471,7 +1472,7 @@ sub user_edit : Path('user_edit') : Args(1) {
return if %{$c->stash->{field_errors}};
if ( ($user->email || "") ne $email ||
- $user->name ne $c->get_param('name') ||
+ $user->name ne $name ||
($user->phone || "") ne $phone ||
($user->from_body && $c->get_param('body') && $user->from_body->id ne $c->get_param('body')) ||
(!$user->from_body && $c->get_param('body'))
@@ -1489,7 +1490,7 @@ sub user_edit : Path('user_edit') : Args(1) {
$user->phone($phone) if !$existing_phone;
$user->email_verified( $email_v );
$user->phone_verified( $phone_v );
- $user->name( $c->get_param('name') );
+ $user->name( $name );
$user->flagged( $c->get_param('flagged') || 0 );
# Only superusers can grant superuser status
diff --git a/t/app/controller/admin.t b/t/app/controller/admin.t
index e6a8a34cf..b4fb54686 100644
--- a/t/app/controller/admin.t
+++ b/t/app/controller/admin.t
@@ -1325,6 +1325,10 @@ my %default_perms = (
trusted_bodies => undef,
);
+# Start this section with user having no name
+# Regression test for mysociety/fixmystreetforcouncils#250
+$user->update({ name => '' });
+
FixMyStreet::override_config {
MAPIT_URL => 'http://mapit.uk/',
}, sub {
@@ -1332,7 +1336,7 @@ FixMyStreet::override_config {
{
desc => 'edit user name',
fields => {
- name => 'Test User',
+ name => '',
email => 'test@example.com',
body => $haringey->id,
phone => '',