#!/usr/bin/perl use strict; use lib '../../propslib'; use vars qw(%c); use Authen::Users; use CGI qw/:push/; use CGI::Cookie; use Digest::MD5; use PropsConfig (); *c = \%PropsConfig::c; # Global Constructors my $auth = new Authen::Users(dbtype => 'SQLite', dbname => "$c{PROPS_REL_PATH}/$c{PROPS_USERS_DB}"); my $q = new CGI; my $authdigest = new Digest::MD5; # Global Variables my $auth_ok; my $props_group = 'props'; $q->import_names('in'); # Sanitize Inputs $in::email = CGI::escape($in::email); $in::email =~ s/%40/\@/; $in::password = CGI::escape($in::password); if ($in::Action eq 'Login') { # Check Required Fields if ( !$in::password || !$in::email ) { print $q->header; print qq[
]; print qq[

Failed

All Fields Are Required

]; } else { $auth_ok = $auth->authenticate($props_group, $in::email, $in::password); # If Auth credentials are OK, set the cookie and redirect if ($auth_ok) { my $db_auth = $auth->user_info_hashref($props_group, $in::email); $authdigest->add($in::email,$db_auth->{password},$c{SESSION_SECRET}); my $authtoken = $authdigest->b64digest; print <]; print qq[

Success!

Logged In!

]; print qq[

Continue to Props

]; print qq[
]; } else { # Login failed. print $q->header; print qq[
]; print qq[

Failed

Unable To Authenticate

Try again or recover your password.

]; print qq[
]; } } } else { print $q->header; print < Props Login Form

Props User Login

Login

Register Account | Reset Password

EOHTML }