Compare commits

..

No commits in common. "07977292fe5c80a677d4fcca98c389ed5b252f99" and "e12849508e61a370d4258a0069fb70728a2a0e04" have entirely different histories.

7 changed files with 39 additions and 85 deletions

View File

@ -1,6 +0,0 @@
{
"recommendations": [
"kraih.mojolicious",
"aaron-bond.better-comments"
]
}

49
.vscode/settings.json vendored
View File

@ -16,54 +16,5 @@
"subf", "subf",
"subforum", "subforum",
"subforums" "subforums"
],
"better-comments.highlightPlainText": true,
"better-comments.tags": [
{
"tag": "!",
"color": "#FF2D00",
"strikethrough": false,
"underline": false,
"backgroundColor": "transparent",
"bold": false,
"italic": false
},
{
"tag": "?",
"color": "#3498DB",
"strikethrough": false,
"underline": false,
"backgroundColor": "transparent",
"bold": false,
"italic": false
},
{
"tag": "//",
"color": "#474747",
"strikethrough": true,
"underline": false,
"backgroundColor": "transparent",
"bold": false,
"italic": false
},
{
"tag": "todo",
"color": "#FF8C00",
"strikethrough": false,
"underline": false,
"backgroundColor": "transparent",
"bold": false,
"italic": false
},
{
"tag": "*",
"color": "#98C379",
"strikethrough": false,
"underline": false,
"backgroundColor": "transparent",
"bold": false,
"italic": false
}
] ]
} }

View File

@ -1,5 +1,5 @@
-- --
-- File generated with SQLiteStudio v3.4.4 on Sun. May 7 22:15:23 2023 -- File generated with SQLiteStudio v3.4.4 on Sun. May 7 00:02:05 2023
-- --
-- Text encoding used: UTF-8 -- Text encoding used: UTF-8
-- --
@ -48,6 +48,7 @@ DROP TABLE IF EXISTS sessions;
CREATE TABLE IF NOT EXISTS sessions ( CREATE TABLE IF NOT EXISTS sessions (
user_id INTEGER PRIMARY KEY user_id INTEGER PRIMARY KEY
REFERENCES users (user_id) REFERENCES users (user_id)
UNIQUE
NOT NULL, NOT NULL,
session_key TEXT NOT NULL session_key TEXT NOT NULL
UNIQUE, UNIQUE,

View File

@ -1,4 +1,5 @@
package CharmBoard; package CharmBoard;
use experimental 'smartmatch';
use Mojo::Base 'Mojolicious', -signatures; use Mojo::Base 'Mojolicious', -signatures;
use CharmBoard::Schema; use CharmBoard::Schema;

View File

@ -76,18 +76,18 @@ sub login_do ($app) {
my $username = $app->param('username'); my $username = $app->param('username');
my $password = $app->pepper . ':' . $app->param('password'); my $password = $app->pepper . ':' . $app->param('password');
try { my $userInfoCheck = $app->schema->resultset('Users')->search({username => $username});
# check to see if user by entered username exists
my $userInfo = $app->schema->resultset('Users')->search({username => $username});
$userInfo or die;
# now check password validity if ($userInfoCheck) {
my $passCheck = passchk($userInfo->get_column('salt')->first, my $passCheckStatus = passchk($userInfoCheck->get_column('salt')->first,
$userInfo->get_column('password')->first, $password); $userInfoCheck->get_column('password')->first, $password);
$passCheck or die;
# get user ID for session creation if ($passCheckStatus) {
my $userID = $userInfo->get_column('user_id')->first; my $userID = $userInfoCheck->get_column('user_id')->first;
# delete old session from DB if exists
if ($app->schema->resultset('Session')->search({user_id => $userID})) {
$app->schema->resultset('Session')->search({user_id => $userID})->delete; };
# gen session key and set expiry time # gen session key and set expiry time
my $sessionKey = seasoning(16); my $sessionKey = seasoning(16);
@ -107,11 +107,17 @@ sub login_do ($app) {
$app->session(session_key => $sessionKey); $app->session(session_key => $sessionKey);
$app->session(expires => $sessionExpiry); $app->session(expires => $sessionExpiry);
# redirect to index upon success # redirect to index
$app->redirect_to('/')} $app->redirect_to('/')}
catch ($error) { # redir to login page on fail
print $error; else {
$app->flash(error => 'Username or password incorrect.'); $app->flash(error => 'Password incorrect');
$app->redirect_to('login')}}; $app->redirect_to('login')}}
else {
$app->flash(error => 'User ' . $username . ' does not exist.');
$app->redirect_to('login')};
}
1; 1;

View File

@ -13,7 +13,7 @@ __PACKAGE__->add_columns(
is_nullable => 0, }, is_nullable => 0, },
thread_id => { thread_id => {
data_type => 'integer', data_type => 'integer',
is_auto_increment => 0, is_auto_increment => 1,
is_nullable => 0, }, is_nullable => 0, },
post_date => { post_date => {
data_type => 'integer', data_type => 'integer',

View File

@ -3,6 +3,7 @@
use strict; use strict;
use warnings; use warnings;
use utf8; use utf8;
use experimental 'smartmatch';
use Mojo::File qw(curfile); use Mojo::File qw(curfile);
use lib curfile->dirname->sibling('lib')->to_string; use lib curfile->dirname->sibling('lib')->to_string;