use strict;
use warnings;
use Data::Dumper;
-use base qw/Catalyst::Authentication::User/;
-use base qw/Class::Accessor::Fast/;
+use base qw/Class::Accessor::Fast Catalyst::Authentication::User/;
BEGIN {
__PACKAGE__->mk_accessors(qw//);
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};
}
($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;
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;