diff --git a/lib/PZ.pm b/lib/PZ.pm index c9eae0099ad9870762b0b1a979d1773424562ca6..6f92d06bb3ea991cfb3b2bbf11e677a0b26cd50c 100644 --- a/lib/PZ.pm +++ b/lib/PZ.pm @@ -43,7 +43,11 @@ sub startup { autoload_user => 1, load_user => sub { my $c = shift; - return $c->session->{user}; + my $user = $c->schema->resultset('User')->find({ + id => $c->session->{user}{id}, + }); + return $user; +# return $c->session->{user}; }, validate_user => sub { my $c = shift; @@ -61,12 +65,13 @@ sub startup { # router my $r = $self->routes; - $r->get('/')->to(cb => sub { shift->render('index'); }); - $r->post('/')->to('Shortcut#create'); - $r->get('/login')->to('OIDC#callback'); $r->get('/logout')->to('OIDC#do_logout'); + $r->get('/')->to(cb => sub { shift->render('index'); }); + $r->post('/')->to('Shortcut#create'); + $r->get('/shortcuts')->to('Shortcut#list'); + $r->get('/:shortcut')->to('Shortcut#redirect'); $r->get('/:shortcut/qr.png')->to('Shortcut#qr'); diff --git a/lib/PZ/Controller/Shortcut.pm b/lib/PZ/Controller/Shortcut.pm index e7a9e3083d49a87c38286ace2e81f57bcb6bea4d..cfdb2336b207751ce7108c01e35fd051034d1e33 100644 --- a/lib/PZ/Controller/Shortcut.pm +++ b/lib/PZ/Controller/Shortcut.pm @@ -34,7 +34,7 @@ sub create ($c) { } my %data = ( - user_id => $c->current_user->{id}, + user_id => $c->current_user->id, deleted => undef, url => $url, ); diff --git a/lib/PZ/Schema/Result/User.pm b/lib/PZ/Schema/Result/User.pm index 58034ccb8dd1ac192cfdc4c23ce1c1858c8a7272..14b110268cdb44be8e6a85db3187f2d4264bbda9 100644 --- a/lib/PZ/Schema/Result/User.pm +++ b/lib/PZ/Schema/Result/User.pm @@ -39,6 +39,11 @@ __PACKAGE__->add_unique_constraint( 'token' => [qw(token)] ); +__PACKAGE__->has_many( + shortcuts => 'PZ::Schema::Result::Shortcut', + { 'foreign.user_id' => 'self.id', }, +); + sub set_token { my $self = shift; my $new = shift;