cyberman/lib/cyberman.pm

71 lines
1.1 KiB
Perl

package cyberman;
use Dancer2;
use Dancer2::Plugin::Database;
use cyberman::Domains;
use cyberman::Auth;
use cyberman::Account;
use cyberman::Helper;
use cyberman::API;
use cyberman::Records;
use cyberman::Forgot;
# Index route, hook and helper functions for authentication
sub get_auth {
my $uid = shift;
my $token = shift;
my $result = database->quick_select("session", {"uid" => $uid, "token" => $token});
if ($result) {
return $uid;
} else {
return 0;
}
}
hook 'before' => sub {
sub cookieval {
my $name = shift;
my $cookie = cookie($name);
if ($cookie) {
return $cookie->value;
} else {
return undef;
}
}
my $uid = cookieval("id");
my $token = cookieval("token");
my $auth = 0;
my $email;
if ($uid && $token) {
$auth = get_auth($uid, $token);
$email = database->quick_lookup(
"user",
{
"id" => $uid,
},
"email",
);
}
var auth => $auth;
var email => $email;
var config => config();
};
get qr{^/(index)?$} => sub {
if (!vars->{auth}) {
return template 'index';
}
template 'redir' => {
"redir" => "domains",
};
};
true;