diff --git a/lib/Galileo.pm b/lib/Galileo.pm index a28d767..1285ca5 100644 --- a/lib/Galileo.pm +++ b/lib/Galileo.pm @@ -187,7 +187,7 @@ sub startup { my $r = $app->routes; $r->any( '/' => sub { my $self = shift; $self->redirect_to( $self->home_page ) }); - $r->any( '/page/:name' )->to('page#show'); + $r->any( '/page/:name' )->to('page#show')->name('show_page'); $r->post( '/login' )->to('user#login'); $r->any( '/logout' )->to('user#logout'); @@ -197,7 +197,7 @@ sub startup { }); $if_author->any( '/admin/menu' )->to('menu#edit'); - $if_author->any( '/edit/:name' )->to('page#edit'); + $if_author->any( '/edit/:name' )->to('page#edit')->name('edit_page'); $if_author->websocket( '/store/page' )->to('page#store'); $if_author->websocket( '/store/menu' )->to('menu#store'); $if_author->websocket( '/files/list' )->to('file#list'); diff --git a/lib/Galileo/Page.pm b/lib/Galileo/Page.pm index 2183ab3..a8a25dc 100644 --- a/lib/Galileo/Page.pm +++ b/lib/Galileo/Page.pm @@ -11,8 +11,8 @@ sub show { if ($page) { $self->render( page => $page ); } else { - if ($self->session->{username}) { - $self->redirect_to("/edit/$name"); + if ( $self->is_author ) { + $self->redirect_to(edit_page => name => $name); } else { $self->reply->not_found; } diff --git a/lib/Galileo/files/templates/admin/pages.html.ep b/lib/Galileo/files/templates/admin/pages.html.ep index 33611c9..08c4226 100644 --- a/lib/Galileo/files/templates/admin/pages.html.ep +++ b/lib/Galileo/files/templates/admin/pages.html.ep @@ -33,8 +33,8 @@ % end %= tag td => begin
- - + + diff --git a/lib/Galileo/files/templates/user_menu.html.ep b/lib/Galileo/files/templates/user_menu.html.ep index 7a11ba6..52e856d 100644 --- a/lib/Galileo/files/templates/user_menu.html.ep +++ b/lib/Galileo/files/templates/user_menu.html.ep @@ -1,12 +1,10 @@ -% my $user = session 'username'; -% my $url = $self->tx->req->url; -% if ($user) { +% if (my $user = session 'username') {