Make "Invalid username" error message customizable
authorMarius Gavrilescu <marius@ieval.ro>
Sun, 8 Mar 2015 14:51:51 +0000 (16:51 +0200)
committerMarius Gavrilescu <marius@ieval.ro>
Sun, 8 Mar 2015 14:51:51 +0000 (16:51 +0200)
lib/Plack/Middleware/Auth/Complex.pm
t/Plack-Middleware-Auth-Complex.t

index ac70da693554a5aec710f194b3e386ba93fcf874..035a622259353c963f2577d33bcededeae519dfc 100644 (file)
@@ -32,6 +32,7 @@ sub default_opts {(
        cache_max_age     => 5 * 60,
        token_max_age     => 60 * 60,
        username_regex    => qr/^\w{2,20}$/as,
+       invalid_username  => 'Invalid username',
        register_url      => '/action/register',
        passwd_url        => '/action/passwd',
        request_reset_url => '/action/request-reset',
@@ -176,7 +177,7 @@ sub call_register {
                return $self->bad_request("Missing parameter $_") unless $parms{$_};
        }
 
-       return $self->bad_request('Username must match ' . $self->{username_regex}) unless $parms{username} =~ $self->{username_regex};
+       return $self->bad_request($self->{invalid_username}) unless $parms{username} =~ $self->{username_regex};
        return $self->bad_request('Username already in use') if $self->get_user($parms{username});
        return $self->bad_request('The two passwords do not match') unless $parms{password} eq $parms{confirm_password};
 
@@ -391,6 +392,11 @@ Password reset token validity, in seconds. Defaults to 1 hour.
 Regular expression that matches valid usernames. Defaults to
 C<qr/^\w{2,20}$/as>.
 
+=item invalid_username
+
+Error message returned when the username does not match
+username_regex. Defaults to C<'Invalid username'>
+
 =item register_url
 
 URL for registering. Defaults to C<'/action/register'>.
index eae34b7e0d36de75dd52916b044b291db997e151..72de5723e6c1db4605066a2992abef11093e3d8d 100644 (file)
@@ -53,7 +53,7 @@ test_psgi $app, sub {
        is_http $cb->(GET '/', Authorization => 'Hello'), 200, 'Anon', 'GET / with invalid Authorization';
        is_http $cb->(GET '/', Authorization => $auth), 200, 'Anon', 'GET / with bad user/pass';
        is_http $cb->(POST '/register'), 400, 'Missing parameter username', 'POST /register with no parameters';
-       is_http $cb->(POST '/register', [@register_args, username => '???'] ), 400, 'Username must match (?^as:^\w{2,20}$)', 'POST /register with bad username';
+       is_http $cb->(POST '/register', [@register_args, username => '???'] ), 400, 'Invalid username', 'POST /register with bad username';
        is_http $cb->(POST '/register', [@register_args, password => '???'] ), 400, 'The two passwords do not match', 'POST /register with different passwords';
        is_http $cb->(POST '/register', \@register_args), 200, 'Registered successfully', 'POST /register with correct parameters',
        is_http $cb->(POST '/register', \@register_args), 400, 'Username already in use', 'POST /register with existing user',
This page took 0.012818 seconds and 4 git commands to generate.