Compare commits

...

2 Commits

Author SHA1 Message Date
ngoomie 569aa1c95b Run perltidy 2024-08-24 00:02:27 -06:00
ngoomie 69919bcccb Stop thread compose box from being filled with spaces initially 2024-08-23 23:43:57 -06:00
7 changed files with 106 additions and 99 deletions

View File

@ -17,7 +17,7 @@ sub startup {
# load plugins that require no additional conf # load plugins that require no additional conf
$app->plugin('TagHelpers'); $app->plugin('TagHelpers');
$app->plugin('Model', {namespaces => ['CharmBoard::Model']}); $app->plugin('Model', { namespaces => ['CharmBoard::Model'] });
# load configuration from config file # load configuration from config file
my $config = my $config =
@ -69,7 +69,8 @@ sub startup {
# session helpers # session helpers
## create session ## create session
$app->helper(session_create => sub { $app->helper(
session_create => sub {
my $app = shift; my $app = shift;
my $_session_key = seasoning(16); my $_session_key = seasoning(16);
@ -84,27 +85,30 @@ sub startup {
}); });
# now create session cookie # now create session cookie
$app->session(is_auth => 1 ); $app->session(is_auth => 1);
$app->session(user_id => $_[0] ); $app->session(user_id => $_[0]);
$app->session(session_key => $_session_key); $app->session(session_key => $_session_key);
$app->session(expiration => 604800 ); $app->session(expiration => 604800);
}); }
);
## destroy session ## destroy session
$app->helper(session_destroy => sub { $app->helper(
session_destroy => sub {
my $app = shift; my $app = shift;
my $_session_key = $app->session('session_key'); my $_session_key = $app->session('session_key');
# destroy entry for this session in the database # destroy entry for this session in the database
$app->schema->resultset('Session') $app->schema->resultset('Session')
->search({ session_key => $_session_key }) ->search({ session_key => $_session_key })->delete;
->delete;
# now nuke the actual session cookie # now nuke the actual session cookie
$app->session(expires => 1); $app->session(expires => 1);
}); }
);
## verify session ## verify session
$app->helper(session_verify => sub { $app->helper(
session_verify => sub {
my $app = shift; my $app = shift;
my $_validity = 1; my $_validity = 1;
@ -118,21 +122,21 @@ sub startup {
if ($_is_auth) { if ($_is_auth) {
try { try {
# check to see if session with this id is present in db # check to see if session with this id is present in db
($app->schema->resultset('Session')->search ($app->schema->resultset('Session')
({ 'session_key' => $_session_key }) ->search({ 'session_key' => $_session_key })
->get_column('session_key')->first) ->get_column('session_key')->first)
or die; or die;
# check to see if the current session key's user id matches # check to see if the current session key's user id matches
# that of the user id in the database # that of the user id in the database
$_user_id == ($app->schema->resultset('Session')-> $_user_id == ($app->schema->resultset('Session')
session_uid($_session_key)) ->session_uid($_session_key))
or die; or die;
# check if session is still within valid time as recorded in # check if session is still within valid time as recorded in
# the db # the db
time < ($app->schema->resultset('Session')-> time < ($app->schema->resultset('Session')
session_expiry($_session_key)) ->session_expiry($_session_key))
or die; or die;
} catch ($_catch_error) { } catch ($_catch_error) {
$_validity = undef; $_validity = undef;
@ -143,7 +147,8 @@ sub startup {
} }
return $_validity; return $_validity;
}); }
);
# router # router
my $r = $app->routes; my $r = $app->routes;

View File

@ -62,7 +62,8 @@ sub login_do {
} catch ($catch_error) { # redirect to login page on fail } catch ($catch_error) { # redirect to login page on fail
print $catch_error; print $catch_error;
$c->flash( $c->flash(
error => 'Your username and password were correct, but a server error =>
'Your username and password were correct, but a server
error prevented you from logging in. This has been logged error prevented you from logging in. This has been logged
so the administrator can fix it.' so the administrator can fix it.'
); );

View File

@ -16,15 +16,14 @@ sub thread_compose {
my $subf_cat = my $subf_cat =
$c->schema->resultset('Subforums')->cat_from_id($subf_id); $c->schema->resultset('Subforums')->cat_from_id($subf_id);
my $cat_title = my $cat_title =
$c->schema->resultset('Categories') $c->schema->resultset('Categories')->title_from_id($subf_cat);
->title_from_id($subf_cat);
$c->render( $c->render(
template => 'thread_compose', template => 'thread_compose',
subf_id => $subf_id, subf_id => $subf_id,
cat_title => $cat_title, cat_title => $cat_title,
subf_title => $c->schema->resultset('Subforums') subf_title =>
->title_from_id($subf_id), $c->schema->resultset('Subforums')->title_from_id($subf_id),
error => $c->flash('error'), error => $c->flash('error'),
message => $c->flash('message') message => $c->flash('message')
) )

View File

@ -53,8 +53,9 @@ sub register_do {
## search for input username and email in database ## search for input username and email in database
$user_check = $c->schema->resultset('Users') $user_check = $c->schema->resultset('Users')
->search({ username => $username })->single; ->search({ username => $username })->single;
$email_check = $c->schema->resultset('Users') $email_check =
->search({ email => $email })->single; $c->schema->resultset('Users')->search({ email => $email })
->single;
# TODO: compress this into something less redundant # TODO: compress this into something less redundant
($user_check && $email_check) eq undef ($user_check && $email_check) eq undef

View File

@ -16,8 +16,7 @@ sub subf_view {
my $subf_cat = my $subf_cat =
$c->schema->resultset('Subforums')->cat_from_id($subf_id); $c->schema->resultset('Subforums')->cat_from_id($subf_id);
my $cat_title = my $cat_title =
$c->schema->resultset('Categories') $c->schema->resultset('Categories')->title_from_id($subf_cat);
->title_from_id($subf_cat);
my @thread_list = my @thread_list =
$c->schema->resultset('Threads')->fetch_by_subf($subf_id); $c->schema->resultset('Threads')->fetch_by_subf($subf_id);
@ -26,8 +25,8 @@ sub subf_view {
template => 'subf', template => 'subf',
subf_id => $subf_id, subf_id => $subf_id,
cat_title => $cat_title, cat_title => $cat_title,
subf_title => $c->schema->resultset('Subforums') subf_title =>
->title_from_id($subf_id), $c->schema->resultset('Subforums')->title_from_id($subf_id),
thread_list => \@thread_list thread_list => \@thread_list
) )
} }

View File

@ -12,8 +12,10 @@ use Tree::Simple;
sub list_full { sub list_full {
my $c = shift; my $c = shift;
# fetch a list of all categories # fetch a list of all categories
my @_all_cat = $c->{app}->schema->resultset('Categories')->fetch_all; my @_all_cat =
$c->{app}->schema->resultset('Categories')->fetch_all;
# create a Tree::Simple object that will contain the list # create a Tree::Simple object that will contain the list
# of categories and the subforums that belong to them # of categories and the subforums that belong to them

View File

@ -14,7 +14,7 @@
id="post-content" id="post-content"
name="post-content" name="post-content"
cols="50" rows="5" cols="50" rows="5"
placeholder="post content"> placeholder="post content"></textarea>
</textarea><br /><br /> <br /><br />
<input type="submit" value="post!" /> <input type="submit" value="post!" />
</form> </form>