RSS Git Download  Clone
Raw Blame History
package Reporter::Model;

use Reporter::Class; # provides Moo, Modern::Perl, Local::MooX::Types & Data::Printer::p
use Reporter::DB;

has db => ( is => 'lazy', builder => sub { Reporter::DB->new(dbname => 'hilis4') });

use Digest::SHA1;

sub authenticate_user {
    my ($self, $params) = @_; # p $params;
    
    my $username = $params->{username}; # username or email addr
    my $password = $params->{password};
    
    my $digest = _sha1_digest($password); # p $digest;    
    
    my $user = do {
        my @cols = qw(username password);
        my %where = ( username => $username, active => 'yes' );
        $self->db->dbix->select('users', \@cols, \%where)->hash;
    }; # p $user; p $digest;

    return ( $user->{password} eq $digest ) ? $user->{username} : 0;
}

sub _sha1_digest {
	my $str = shift; # warn $str;

    my $sha1 = Digest::SHA1->new;
    $sha1->add($str);

    return $sha1->b64digest;
}

1;