#
__PACKAGE__->config(namespace => '');
+use JSON 'encode_json';
+
use Chatty::Form::Login;
use Chatty::Form::Register;
=cut
sub index :Path :Args(0) {
- my ( $self, $c ) = @_;
+ my ($self, $c) = @_;
+ $c->go('/chat/list') if ($c->user_exists);
+ $c->go('login');
}
=head2 login
$c->change_session_id;
my $user = $c->user->get('username');
$c->flash->{message} .= "Hi, $user! You are now logged in.";
- $c->response->redirect($c->uri_for('/'));
+ $c->res->redirect($c->uri_for_action('index'));
+ return;
}
else {
$c->flash->{error} = "Log-in failed! Try again, I guess.";
- $c->response->redirect($c->uri_for('login'));
+ $c->res->redirect($c->uri_for_action('login'));
}
- }
+ };
}
=head2 logout
$c->logout;
$c->flash->{message} = "Goodbye! You have been logged out.";
}
- $c->response->redirect($c->uri_for('/'));
+ $c->res->redirect($c->uri_for_action('index'));
}
=head2 register
params => $c->req->params
);
- return unless $self->register_form->is_valid;
+ if (!$self->register_form->is_valid) {
+ if ($c->req->method eq 'POST') {
+ $c->stash->{error} = "The form has a validation error. Try again...";
+ }
+ return;
+ }
$c->flash->{message} = "Registration complete. ";
$c->forward('login');
}
+=head2 register_validate
+
+Check whether or not a username is available.
+
+=cut
+
+sub register_validate :Local :Args(0) {
+ my ($self, $c) = @_;
+
+ my $id = $c->req->param('fieldId');
+ my $username = $c->req->param('fieldValue');
+
+ my $json_arr = [];
+
+ if ($username) {
+ my $account = $c->model('DB::Account')->find({username => $username});
+ if (!$account) {
+ $json_arr = ["$id", 1, "This username is available. Nice!"];
+ }
+ else {
+ $json_arr = ["$id", 0, "This username is taken."];
+ }
+ }
+ else {
+ $json_arr = ["$id", 0, "Invalid arguments to check script."];
+ }
+ $c->res->content_type("application/json");
+ $c->res->body(encode_json($json_arr));
+}
+
+=head2 access_denied
+
+Standard 403 error page
+
+=cut
+
+sub access_denied :Private {
+ my ($self, $c) = @_;
+ $c->res->body('Access denied.');
+ $c->res->status(403);
+}
+
+=head2 missing
+
+Standard 404 error page
+
+=cut
+
+sub missing :Private {
+ my ($self, $c) = @_;
+ $c->res->body('Page not found.');
+ $c->res->status(404);
+}
+
=head2 default
Standard 404 error page
sub default :Path {
my ($self, $c) = @_;
- $c->response->body('Page not found.');
- $c->response->status(404);
+ $c->detach('missing');
}
=head2 end