diff --git a/lib/CharmBoard.pm b/lib/CharmBoard.pm
index f8365a7..dac37aa 100644
--- a/lib/CharmBoard.pm
+++ b/lib/CharmBoard.pm
@@ -12,39 +12,39 @@ use CharmBoard::Util::Crypt::Seasoning;
# this method will run once at server start
sub startup {
- my $self = shift;
+ my $app = shift;
# load plugins that require no additional conf
- $self->plugin('TagHelpers');
- $self->plugin('Model', {namespaces => ['CharmBoard::Model']});
+ $app->plugin('TagHelpers');
+ $app->plugin('Model', {namespaces => ['CharmBoard::Model']});
# load configuration from config file
my $config =
- $self->plugin('Config' => { file => 'charmboard.conf' });
+ $app->plugin('Config' => { file => 'charmboard.conf' });
# set this specific forum's name
- $self->helper(board_name => sub { $config->{board_name} });
+ $app->helper(board_name => sub { $config->{board_name} });
# load dev env only stuff, if applicable
if (lc($config->{environment}) eq 'dev') {
- $self->renderer->cache->max_keys(0)
+ $app->renderer->cache->max_keys(0)
}
# import Mojolicious secrets
- $self->secrets($config->{secrets});
+ $app->secrets($config->{secrets});
# import password pepper value
- $self->helper(pepper => sub { $config->{pass_crypt}->{pepper} });
+ $app->helper(pepper => sub { $config->{pass_crypt}->{pepper} });
## database setup
# ? this could maybe be a given/when
{
my ($_dsn, $_unicode);
- if (lc($self->config->{database}->{type}) eq 'sqlite') {
+ if (lc($app->config->{database}->{type}) eq 'sqlite') {
$_dsn = "dbi:SQLite:" . $config->{database}->{name};
$_unicode = "sqlite_unicode"
- } elsif (lc($self->config->{database}->{type}) eq 'mariadb') {
+ } elsif (lc($app->config->{database}->{type}) eq 'mariadb') {
$_dsn = "dbi:mysql:" . $config->{database}->{name};
$_unicode = "mysql_enable_utf"
@@ -63,18 +63,18 @@ sub startup {
{ $_unicode => 1 }
);
- $self->helper(schema => sub { $schema })
+ $app->helper(schema => sub { $schema })
}
# session helpers
## create session
- $self->helper(session_create => sub {
- my $self = shift;
+ $app->helper(session_create => sub {
+ my $app = shift;
my $_session_key = seasoning(16);
# create session entry in db
- $self->schema->resultset('Session')->create({
+ $app->schema->resultset('Session')->create({
session_key => $_session_key,
user_id => $_[0],
session_expiry => time + 604800,
@@ -83,59 +83,59 @@ sub startup {
});
# now create session cookie
- $self->session(is_auth => 1 );
- $self->session(user_id => $_[0] );
- $self->session(session_key => $_session_key);
- $self->session(expiration => 604800 );
+ $app->session(is_auth => 1 );
+ $app->session(user_id => $_[0] );
+ $app->session(session_key => $_session_key);
+ $app->session(expiration => 604800 );
});
## destroy session
- $self->helper(session_destroy => sub {
- my $self = shift;
+ $app->helper(session_destroy => sub {
+ my $app = shift;
- my $_session_key = $self->session('session_key');
+ my $_session_key = $app->session('session_key');
# destroy entry for this session in the database
- $self->schema->resultset('Session')
+ $app->schema->resultset('Session')
->search({ session_key => $_session_key })
->delete;
# now nuke the actual session cookie
- $self->session(expires => 1);
+ $app->session(expires => 1);
});
## verify session
- $self->helper(session_verify => sub {
- my $self = shift;
+ $app->helper(session_verify => sub {
+ my $app = shift;
my $_validity = 1;
my $_catch_error;
# get info from user's session cookie and store it in vars
- my $_user_id = $self->session('user_id');
- my $_session_key = $self->session('session_key');
- my $_is_auth = $self->session('is_auth');
+ my $_user_id = $app->session('user_id');
+ my $_session_key = $app->session('session_key');
+ my $_is_auth = $app->session('is_auth');
if ($_is_auth) {
try {
# check to see if session with this id is present in db
- ($self->schema->resultset('Session')->search
+ ($app->schema->resultset('Session')->search
({ 'session_key' => $_session_key })
->get_column('session_key')->first)
or die;
# check to see if the current session key's user id matches
# that of the user id in the database
- $_user_id == ($self->schema->resultset('Session')->
+ $_user_id == ($app->schema->resultset('Session')->
session_uid($_session_key))
or die;
# check if session is still within valid time as recorded in
# the db
- time < ($self->schema->resultset('Session')->
+ time < ($app->schema->resultset('Session')->
session_expiry($_session_key))
or die;
} catch ($_catch_error) {
$_validity = undef;
- $self->session_destroy;
+ $app->session_destroy;
}
} else {
$_validity = 0;
@@ -145,7 +145,7 @@ sub startup {
});
# router
- my $r = $self->routes;
+ my $r = $app->routes;
# controller routes
## index page
diff --git a/lib/CharmBoard/Controller/Index.pm b/lib/CharmBoard/Controller/Index.pm
index 403ec8b..9db6b26 100644
--- a/lib/CharmBoard/Controller/Index.pm
+++ b/lib/CharmBoard/Controller/Index.pm
@@ -10,15 +10,15 @@ use Mojo::Base 'Mojolicious::Controller', -signatures;
use Tree::Simple;
sub index {
- my $self = shift;
+ my $c = shift;
- if ($self->session_verify eq undef) {
- $self->redirect_to('/')
+ if ($c->session_verify eq undef) {
+ $c->redirect_to('/')
}
- $self->render(
+ $c->render(
template => 'index',
- category_tree => $self->model('forums')->list_full
+ category_tree => $c->model('forums')->list_full
)
}
diff --git a/lib/CharmBoard/Controller/Login.pm b/lib/CharmBoard/Controller/Login.pm
index b99fcbe..906229c 100644
--- a/lib/CharmBoard/Controller/Login.pm
+++ b/lib/CharmBoard/Controller/Login.pm
@@ -11,19 +11,19 @@ use CharmBoard::Util::Crypt::Password;
use CharmBoard::Util::Crypt::Seasoning;
sub login {
- my $self = shift;
+ my $c = shift;
- $self->render(
+ $c->render(
template => 'login',
- error => $self->flash('error'),
- message => $self->flash('message')
+ error => $c->flash('error'),
+ message => $c->flash('message')
)
}
sub login_do {
- my $self = shift;
- my $username = $self->param('username');
- my $password = $self->pepper . ':' . $self->param('password');
+ my $c = shift;
+ my $username = $c->param('username');
+ my $password = $c->pepper . ':' . $c->param('password');
my $catch_error;
@@ -34,7 +34,7 @@ sub login_do {
# check user credentials first
try {
# check to see if user by entered username exists
- $user_info = $self->schema->resultset('Users')
+ $user_info = $c->schema->resultset('Users')
->search({ username => $username });
$user_info or die;
@@ -45,27 +45,27 @@ sub login_do {
} catch ($catch_error) { # redirect to login page on fail
print $catch_error;
- $self->flash(error => 'Username or password incorrect.');
- $self->redirect_to('login');
+ $c->flash(error => 'Username or password incorrect.');
+ $c->redirect_to('login');
}
try { # now attempt to create session
# get user ID for session creation
$user_id = $user_info->get_column('user_id')->first;
- $self->session_create($user_id);
+ $c->session_create($user_id);
# redirect to index upon success
- $self->redirect_to('/')
+ $c->redirect_to('/')
} catch ($catch_error) { # redirect to login page on fail
print $catch_error;
- $self->flash(
+ $c->flash(
error => 'Your username and password were correct, but a server
error prevented you from logging in. This has been logged
so the administrator can fix it.'
);
- $self->redirect_to('login')
+ $c->redirect_to('login')
}
}
diff --git a/lib/CharmBoard/Controller/Logout.pm b/lib/CharmBoard/Controller/Logout.pm
index b204b57..6aaf9d8 100644
--- a/lib/CharmBoard/Controller/Logout.pm
+++ b/lib/CharmBoard/Controller/Logout.pm
@@ -9,12 +9,12 @@ use feature ':5.20';
use Mojo::Base 'Mojolicious::Controller', -signatures;
sub logout_do {
- my $self = shift;
+ my $c = shift;
- $self->session_destroy;
+ $c->session_destroy;
# redirect to index
- $self->redirect_to('/')
+ $c->redirect_to('/')
}
1;
diff --git a/lib/CharmBoard/Controller/NewThread.pm b/lib/CharmBoard/Controller/NewThread.pm
index 89f330f..e42baea 100644
--- a/lib/CharmBoard/Controller/NewThread.pm
+++ b/lib/CharmBoard/Controller/NewThread.pm
@@ -9,32 +9,33 @@ use feature ':5.20';
use Mojo::Base 'Mojolicious::Controller', -signatures;
sub thread_compose {
- my $self = shift;
+ my $c = shift;
- my $subf_id = $self->param('id');
+ my $subf_id = $c->param('id');
my $subf_cat =
- $self->schema->resultset('Subforums')->cat_from_id($subf_id);
+ $c->schema->resultset('Subforums')->cat_from_id($subf_id);
my $cat_title =
- $self->schema->resultset('Categories')
+ $c->schema->resultset('Categories')
->title_from_id($subf_cat);
- $self->render(
+ $c->render(
template => 'thread_compose',
subf_id => $subf_id,
cat_title => $cat_title,
- subf_title => $self->schema->resultset('Subforums')
+ subf_title => $c->schema->resultset('Subforums')
->title_from_id($subf_id),
- error => $self->flash('error'),
- message => $self->flash('message')
+ error => $c->flash('error'),
+ message => $c->flash('message')
)
}
sub thread_submit {
- my $self = shift;
+ my $c = shift;
- my $thread_title = $self->param('thread-title');
- my $post_content = $self->param('post-content');
+ my $thread_title = $c->param('thread-title');
+ my $post_content = $c->param('post-content');
my $post_time = time;
+ my $subf_id = $c->param('id');
my $catch_error;
@@ -43,9 +44,12 @@ sub thread_submit {
($thread_title, $post_content)
or die "Please fill both the title and post content fields"
} catch ($catch_error) {
- $self->flash(error => $catch_error);
- $self->redirect_to('/:id/new')
+ $c->flash(error => $catch_error);
+ $c->redirect_to('board/:id/new')
}
+
+ # now send it
+
}
1;
diff --git a/lib/CharmBoard/Controller/Register.pm b/lib/CharmBoard/Controller/Register.pm
index 1591636..86582f6 100644
--- a/lib/CharmBoard/Controller/Register.pm
+++ b/lib/CharmBoard/Controller/Register.pm
@@ -11,22 +11,22 @@ use CharmBoard::Util::Crypt::Password;
# initial registration page
sub register {
- my $self = shift;
- $self->render(
+ my $c = shift;
+ $c->render(
template => 'register',
- error => $self->flash('error'),
- message => $self->flash('message')
+ error => $c->flash('error'),
+ message => $c->flash('message')
)
}
# process submitted registration form
sub register_do {
- my $self = shift;
+ my $c = shift;
- my $username = $self->param('username');
- my $email = $self->param('email');
- my $password = $self->param('password');
- my $confirm_password = $self->param('confirm-password');
+ my $username = $c->param('username');
+ my $email = $c->param('email');
+ my $password = $c->param('password');
+ my $confirm_password = $c->param('confirm-password');
my $catch_error;
@@ -50,9 +50,9 @@ sub register_do {
# check to make sure username and/or email isn't already in use;
# if not, continue with registration
## search for input username and email in database
- $user_check = $self->schema->resultset('Users')
+ $user_check = $c->schema->resultset('Users')
->search({ username => $username })->single;
- $email_check = $self->schema->resultset('Users')
+ $email_check = $c->schema->resultset('Users')
->search({ email => $email })->single;
# TODO: compress this into something less redundant
@@ -63,18 +63,18 @@ sub register_do {
($email_check) eq undef
or die "email already in use."
} catch ($catch_error) {
- $self->flash(error => $catch_error);
- $self->redirect_to('register')
+ $c->flash(error => $catch_error);
+ $c->redirect_to('register')
}
try {
- $password = $self->pepper . ':' . $password;
+ $password = $c->pepper . ':' . $password;
# return hashed result + salt
($salt, $hash) = passgen($password) or die;
# add user info and pw/salt to DB
- $self->schema->resultset('Users')->create({
+ $c->schema->resultset('Users')->create({
username => $username,
email => $email,
password => $hash,
@@ -83,17 +83,17 @@ sub register_do {
})
or die;
- $self->flash(message => 'User registered successfully!');
- $self->redirect_to('register')
+ $c->flash(message => 'User registered successfully!');
+ $c->redirect_to('register')
} catch ($catch_error) {
print $catch_error;
- $self->flash(
+ $c->flash(
error =>
'Your registration info was correct, but a server error
prevented you from registering. This has been logged so the
administrator can fix it.'
);
- $self->redirect_to('register')
+ $c->redirect_to('register')
}
}
diff --git a/lib/CharmBoard/Controller/ViewSubf.pm b/lib/CharmBoard/Controller/ViewSubf.pm
index 738dd4d..a17ef28 100644
--- a/lib/CharmBoard/Controller/ViewSubf.pm
+++ b/lib/CharmBoard/Controller/ViewSubf.pm
@@ -9,23 +9,23 @@ use feature ':5.20';
use Mojo::Base 'Mojolicious::Controller', -signatures;
sub subf_view {
- my $self = shift;
+ my $c = shift;
- my $subf_id = $self->param('id');
+ my $subf_id = $c->param('id');
my $subf_cat =
- $self->schema->resultset('Subforums')->cat_from_id($subf_id);
+ $c->schema->resultset('Subforums')->cat_from_id($subf_id);
my $cat_title =
- $self->schema->resultset('Categories')
+ $c->schema->resultset('Categories')
->title_from_id($subf_cat);
my @thread_list =
- $self->schema->resultset('Threads')->fetch_by_subf($subf_id);
+ $c->schema->resultset('Threads')->fetch_by_subf($subf_id);
- $self->render(
+ $c->render(
template => 'subf',
subf_id => $subf_id,
cat_title => $cat_title,
- subf_title => $self->schema->resultset('Subforums')
+ subf_title => $c->schema->resultset('Subforums')
->title_from_id($subf_id),
thread_list => \@thread_list
)
diff --git a/lib/CharmBoard/Model/Forums.pm b/lib/CharmBoard/Model/Forums.pm
index 0877661..3124475 100644
--- a/lib/CharmBoard/Model/Forums.pm
+++ b/lib/CharmBoard/Model/Forums.pm
@@ -10,9 +10,9 @@ use Mojo::Base 'MojoX::Model';
use Tree::Simple;
sub list_full {
- my $self = shift;
+ my $c = shift;
# fetch a list of all categories
- my @_all_cat = $self->{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
# of categories and the subforums that belong to them
@@ -26,7 +26,7 @@ sub list_full {
# fetch all subforums that belong to this category
@_fetch_subf =
- $self->{app}->schema->resultset('Subforums')
+ $c->{app}->schema->resultset('Subforums')
->fetch_by_cat($_iter_cat);
# add each fetched subforum as children of the branch
diff --git a/lib/CharmBoard/Model/Schema/Set/Categories.pm b/lib/CharmBoard/Model/Schema/Set/Categories.pm
index dd5dbaa..a04d810 100644
--- a/lib/CharmBoard/Model/Schema/Set/Categories.pm
+++ b/lib/CharmBoard/Model/Schema/Set/Categories.pm
@@ -9,18 +9,18 @@ use feature ':5.20';
use base 'DBIx::Class::ResultSet';
sub fetch_all {
- my $_set = shift;
+ my $set = shift;
- my $_fetch = $_set->search({}, { order_by => 'cat_rank' });
+ my $_fetch = $set->search({}, { order_by => 'cat_rank' });
return ($_fetch->get_column('cat_id')->all)
}
sub title_from_id {
- my $_set = shift;
+ my $set = shift;
return (
- $_set->search({ 'cat_id' => $_[0] })->get_column('cat_name')
+ $set->search({ 'cat_id' => $_[0] })->get_column('cat_name')
->first)
}
diff --git a/lib/CharmBoard/Model/Schema/Set/Subforums.pm b/lib/CharmBoard/Model/Schema/Set/Subforums.pm
index f8797ab..a222888 100644
--- a/lib/CharmBoard/Model/Schema/Set/Subforums.pm
+++ b/lib/CharmBoard/Model/Schema/Set/Subforums.pm
@@ -9,26 +9,26 @@ use feature ':5.20';
use base 'DBIx::Class::ResultSet';
sub fetch_by_cat {
- my $_set = shift;
+ my $set = shift;
- my $_fetch = $_set->search({ 'subf_cat' => $_[0] },
+ my $_fetch = $set->search({ 'subf_cat' => $_[0] },
{ order_by => 'subf_rank' });
return ($_fetch->get_column('subf_id')->all)
}
sub cat_from_id {
- my $_set = shift;
+ my $set = shift;
return (
- $_set->search({ 'subf_id' => $_[0] })->get_column('subf_cat')
+ $set->search({ 'subf_id' => $_[0] })->get_column('subf_cat')
->first)
}
sub title_from_id {
- my $_set = shift;
+ my $set = shift;
- return ($_set->search({ 'subf_id' => $_[0] })
+ return ($set->search({ 'subf_id' => $_[0] })
->get_column('subf_name')->first)
}
diff --git a/lib/CharmBoard/Model/Schema/Set/Threads.pm b/lib/CharmBoard/Model/Schema/Set/Threads.pm
index 70c5e1f..10a5a35 100644
--- a/lib/CharmBoard/Model/Schema/Set/Threads.pm
+++ b/lib/CharmBoard/Model/Schema/Set/Threads.pm
@@ -9,18 +9,18 @@ use feature ':5.20';
use base 'DBIx::Class::ResultSet';
sub fetch_by_subf {
- my $_set = shift;
+ my $set = shift;
my $_fetch =
- $_set->search({ 'thread_subf' => $_[0] });
+ $set->search({ 'thread_subf' => $_[0] });
return ($_fetch->get_column('thread_id')->all)
}
sub title_from_id {
- my $_set = shift;
+ my $set = shift;
- return ($_set->search({ 'thread_id' => $_[0] })
+ return ($set->search({ 'thread_id' => $_[0] })
->get_column('thread_title')->first)
}
diff --git a/templates/index.html.ep b/templates/index.html.ep
index dd6b09d..01e03b3 100644
--- a/templates/index.html.ep
+++ b/templates/index.html.ep
@@ -1,5 +1,5 @@
% layout 'default',
-% title => $self->board_name;
+% title => $c->board_name;
<% my $cat_header = begin %>
% my $_cat_id = shift; my $_name = shift;
@@ -21,13 +21,13 @@
foreach my $category ($category_tree->getAllChildren) { %>
<%= $cat_header->(
$category->getNodeValue,
- $self->schema->resultset('Categories')->
+ $c->schema->resultset('Categories')->
title_from_id($category->getNodeValue)) %>
<%
foreach my $subforum ($category->getAllChildren) { %>
<%= $subf_item->(
$subforum->getNodeValue,
$category->getNodeValue,
- $self->schema->resultset('Subforums')->
+ $c->schema->resultset('Subforums')->
title_from_id($subforum->getNodeValue)) %>
<% }} %>
\ No newline at end of file
diff --git a/templates/layouts/default/_header.html.ep b/templates/layouts/default/_header.html.ep
index a59b778..e864acd 100644
--- a/templates/layouts/default/_header.html.ep
+++ b/templates/layouts/default/_header.html.ep
@@ -2,7 +2,7 @@
my $userControls;
# TODO: once implemented, put username + profile link first
-if ($self->session('is_auth')) {
+if ($c->session('is_auth')) {
my $username = '';
$userControls = "logout"}
else {
@@ -10,5 +10,5 @@ else {
"login |
register"};
%>
-<%== $self->board_name %>
+<%== $c->board_name %>
<%== $userControls %>
\ No newline at end of file
diff --git a/templates/login.html.ep b/templates/login.html.ep
index ffa4c1c..61c2fea 100644
--- a/templates/login.html.ep
+++ b/templates/login.html.ep
@@ -1,5 +1,5 @@
% layout 'default',
-% title => $self->board_name . ' - Login';
+% title => $c->board_name . ' - Login';
% if ($error) {
<%= $error %>
%}; diff --git a/templates/register.html.ep b/templates/register.html.ep index 710b299..c4cb544 100644 --- a/templates/register.html.ep +++ b/templates/register.html.ep @@ -1,5 +1,5 @@ % layout 'default', -% title => $self->board_name . ' - Registration'; +% title => $c->board_name . ' - Registration'; % if ($error) {<%= $error %>
%}; diff --git a/templates/subf.html.ep b/templates/subf.html.ep index b8b94f7..3fa2a59 100644 --- a/templates/subf.html.ep +++ b/templates/subf.html.ep @@ -1,5 +1,5 @@ % layout 'default', -% title => $subf_title . ' - ' . $self->board_name; +% title => $subf_title . ' - ' . $c->board_name; % my @thread_list = @{stash('thread_list')}; <% my $thread_item = begin %> @@ -9,7 +9,7 @@ <% end %> -<%= $self->board_name %> » <%= $cat_title %> » +<%= $c->board_name %> » <%= $cat_title %> » <%= $subf_title %>