diff options
author | Matthew Somerville <matthew@mysociety.org> | 2011-06-24 12:03:48 +0100 |
---|---|---|
committer | Matthew Somerville <matthew@mysociety.org> | 2011-06-24 12:03:48 +0100 |
commit | edf59d8605000c4363ce4d79f270559c522bc63e (patch) | |
tree | 4bb2950a68f66a998165e5a8b15e5bba08f551c5 /perllib/FixMyStreet/App/Controller/Auth.pm | |
parent | 8e6c6833afaf8b4cb820bffb4fa2adf44c0ca24d (diff) |
Allow people to give name/pw on auth page.
Diffstat (limited to 'perllib/FixMyStreet/App/Controller/Auth.pm')
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Auth.pm | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Auth.pm b/perllib/FixMyStreet/App/Controller/Auth.pm index 5767a0a82..2277639df 100644 --- a/perllib/FixMyStreet/App/Controller/Auth.pm +++ b/perllib/FixMyStreet/App/Controller/Auth.pm @@ -50,9 +50,9 @@ Allow the user to legin with a username and a password. sub login : Private { my ( $self, $c ) = @_; - my $email = $c->req->param('email') || ''; - my $password = $c->req->param('password') || ''; - my $remember_me = $c->req->param('remember_me') || 0; + my $email = $c->req->param('email') || ''; + my $password = $c->req->param('password_login') || ''; + my $remember_me = $c->req->param('remember_me') || 0; # logout just in case $c->logout(); @@ -108,6 +108,8 @@ sub email_login : Private { data => { email => $good_email, r => $c->req->param('r'), + name => $c->req->param('name'), + password => $c->req->param('password_register'), } } ); @@ -143,16 +145,19 @@ sub token : Path('/M') : Args(1) { $c->logout(); # get the email and scrap the token - my $email = $token_obj->data->{email}; - my $redirect = $token_obj->data->{r}; + my $data = $token_obj->data; $token_obj->delete; - # find or create the user related to the token and delete the token - my $user = $c->model('DB::User')->find_or_create( { email => $email } ); + # find or create the user related to the token. + my $user = $c->model('DB::User')->find_or_create( { email => $data->{email} } ); + $user->name( $data->{name} ) if $data->{name}; + $user->password( $data->{password} ) if $data->{password}; + $user->update; + $c->authenticate( { email => $user->email }, 'no_password' ); # send the user to their page - $c->detach( 'redirect_on_signin', [ $redirect ] ); + $c->detach( 'redirect_on_signin', [ $data->{r} ] ); } =head2 redirect_on_signin |