aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/App/Controller/Auth.pm
diff options
context:
space:
mode:
authorStruan Donald <struan@exo.org.uk>2011-07-26 16:57:08 +0100
committerStruan Donald <struan@exo.org.uk>2011-07-26 16:57:08 +0100
commit54066cd1387643dd6c6cb3040c520bee66881fd7 (patch)
treeeda84b3f347220ed12de3aa690116148287891bd /perllib/FixMyStreet/App/Controller/Auth.pm
parent8146bad18eeaab658871dd28eb38199a5d068395 (diff)
parent198fcef62892fe0b2fbb3ea8a080fca87843445e (diff)
Merge branch 'master' of ssh://git.mysociety.org/data/git/public/fixmystreet into new_statuses
Conflicts: perllib/FixMyStreet/App/Controller/Admin.pm perllib/FixMyStreet/App/Controller/JSON.pm perllib/FixMyStreet/Map/Tilma/Original.pm web/css/core.css
Diffstat (limited to 'perllib/FixMyStreet/App/Controller/Auth.pm')
-rw-r--r--perllib/FixMyStreet/App/Controller/Auth.pm13
1 files changed, 9 insertions, 4 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Auth.pm b/perllib/FixMyStreet/App/Controller/Auth.pm
index ebb3510d0..c67de692a 100644
--- a/perllib/FixMyStreet/App/Controller/Auth.pm
+++ b/perllib/FixMyStreet/App/Controller/Auth.pm
@@ -36,7 +36,8 @@ sub general : Path : Args(0) {
return unless $req->method eq 'POST';
# decide which action to take
- $c->detach('email_sign_in') if $req->param('email_sign_in');
+ $c->detach('email_sign_in') if $req->param('email_sign_in')
+ || $c->req->param('name') || $c->req->param('password_register');
$c->forward( 'sign_in' )
&& $c->detach( 'redirect_on_signin', [ $req->param('r') ] );
@@ -107,6 +108,11 @@ sub email_sign_in : Private {
return;
}
+ my $user_params = {};
+ $user_params->{password} = $c->req->param('password_register')
+ if $c->req->param('password_register');
+ my $user = $c->model('DB::User')->new( $user_params );
+
my $token_obj = $c->model('DB::Token') #
->create(
{
@@ -115,7 +121,7 @@ sub email_sign_in : Private {
email => $good_email,
r => $c->req->param('r'),
name => $c->req->param('name'),
- password => $c->req->param('password_register'),
+ password => $user->password,
}
}
);
@@ -157,9 +163,8 @@ sub token : Path('/M') : Args(1) {
# 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->password( $data->{password}, 1 ) if $data->{password};
$user->update;
-
$c->authenticate( { email => $user->email }, 'no_password' );
# send the user to their page