X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=lib%2FNDWeb%2FAuth%2FUser.pm;h=a5e8366e5940178fa969144cdae3e712d7501fc5;hb=d786ab3e431fdb29854f4d80fe430c5438d649b6;hp=c19ba2b097b85bf54f4d3c224e52097a5483314d;hpb=b49322dc8ac6ddc3d988caa5cd92b397fb8d0c31;p=ndwebbie.git diff --git a/lib/NDWeb/Auth/User.pm b/lib/NDWeb/Auth/User.pm index c19ba2b..a5e8366 100644 --- a/lib/NDWeb/Auth/User.pm +++ b/lib/NDWeb/Auth/User.pm @@ -31,7 +31,7 @@ sub load { if (exists $authinfo->{id}){ $self->{id} = $dbh->selectrow_array(q{ - SELECT uid FROM users WHERE lower(username) = lower(?) + SELECT uid FROM users WHERE username = ? },undef,$authinfo->{id}); }elsif (exists $authinfo->{uid}){ $self->{id} = $authinfo->{uid}; @@ -42,7 +42,7 @@ sub load { } ($self->{planet},$self->{username},$self->{css}) = $dbh->selectrow_array(q{ - SELECT planet,username,css FROM users WHERE uid = ? + SELECT pid,username,css FROM users WHERE uid = ? },undef,$self->{id}) or die $dbh->errstr; return $self; @@ -102,10 +102,20 @@ sub from_session { sub check_password { my ( $self, $password ) = @_; my $query = $self->{c}->model->prepare(q{ - SELECT uid FROM users WHERE uid = ? AND password = md5(?) + SELECT uid FROM users WHERE uid = $1 AND password = crypt($2,password) }); $query->execute($self->id,$password); - if ($query->rows == 1){ + + if ($query->rows == 0) { + $query = $self->{c}->model->prepare(q{ + UPDATE users SET password = $2 + WHERE uid = $1 AND password = md5($2) + RETURNING uid + }); + $query->execute($self->id,$password); + } + + if ($query->rows == 1) { return $self; } return;