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;