diff --git a/lib/cyberman.pm b/lib/cyberman.pm index 72f183a..b923d14 100644 --- a/lib/cyberman.pm +++ b/lib/cyberman.pm @@ -1,5 +1,9 @@ package cyberman; + use Dancer2; + +use cyberman::Domains; + use Dancer2::Plugin::Database; use Digest::Bcrypt; use Math::Random::Secure qw(rand irand); @@ -64,7 +68,10 @@ get qr{^/(index)?$} => sub { if (!vars->{auth}) { return template 'index'; } - return "well done, you logged in, nothing to see yet"; + + template 'redir' => { + "redir" => "domains", + }; }; post '/register' => sub { @@ -171,8 +178,8 @@ post '/login' => sub { cookie id => $user->{"id"}; cookie token => $token; - template redir => { - "redir" => "index", + template 'redir' => { + "redir" => "domains", }; }; diff --git a/lib/cyberman/Domains.pm b/lib/cyberman/Domains.pm new file mode 100644 index 0000000..5d4c8e7 --- /dev/null +++ b/lib/cyberman/Domains.pm @@ -0,0 +1,23 @@ +package cyberman::Domains; + +use Dancer2 appname => "cyberman"; +use Dancer2::Plugin::Database; + +get '/domains' => sub { + return template 'redir' => { + "redir" => "index", + } unless vars->{"auth"}; + + my @domains = database->quick_select( + "domain", + { + "ownerid" => vars->{"auth"}, + }, + ); + + template 'domains' => { + "domains" => \@domains, + } +}; + +true; diff --git a/schema.sql b/schema.sql index ff6de9c..6c61830 100644 --- a/schema.sql +++ b/schema.sql @@ -14,3 +14,10 @@ create table session ( since integer not null, token text not null ); + +drop table if exists domain; +create table domain ( + id integer primary key, + name string not null, + ownerid integer not null +) diff --git a/views/domains.tt b/views/domains.tt new file mode 100644 index 0000000..e1f57c5 --- /dev/null +++ b/views/domains.tt @@ -0,0 +1,45 @@ +
+
+

Your Domains

+
+
+ +
+ <% IF domains.size > 0 %> + + <% domains.size %> + <% IF domains.size == 1 %> + domain + <% ELSE %> + domains + <% END %> + + +
+ + + + + + + <% FOREACH d IN domains %> + + + + + <% END %> +
+ Domain name + + Actions +
+ <% d.name | html_entity %>.cyb + + [ edit ] + [ remove ] +
+ + <% ELSE %> + You don't have any domains registered. + <% END %> +
diff --git a/views/layouts/main.tt b/views/layouts/main.tt index 145f206..e6beb8b 100644 --- a/views/layouts/main.tt +++ b/views/layouts/main.tt @@ -37,6 +37,9 @@ a.bracketButton:hover { form.login>table>tbody>tr>td>label { margin-right: 10px; } +table.domains>tbody>tr>td:first-child>* { + margin-right: 2em; +} .msgBox { border: 1px solid white;