diff --git a/lib/Cavil.pm b/lib/Cavil.pm index b1bcd1ab28..939d3cea83 100644 --- a/lib/Cavil.pm +++ b/lib/Cavil.pm @@ -209,8 +209,8 @@ sub startup ($self) { $public->get('/pagination/reviews/recent')->to('Pagination#recent_reviews')->name('pagination_recent_reviews'); $public->get('/spdx/')->to('Report#spdx')->name('spdx_report'); - $admin->get('/licenses')->to('License#list')->name('licenses'); - $admin->get('/pagination/licenses/known')->to('Pagination#known_licenses')->name('pagination_known_licenses'); + $public->get('/licenses')->to('License#list')->name('licenses'); + $public->get('/pagination/licenses/known')->to('Pagination#known_licenses')->name('pagination_known_licenses'); $admin->get('/licenses/new_pattern')->to('License#new_pattern')->name('new_pattern'); $admin->post('/licenses/new_pattern')->to('License#new_pattern'); $admin->post('/licenses/create_pattern')->to('License#create_pattern')->name('create_pattern'); @@ -219,7 +219,7 @@ sub startup ($self) { $admin->post('/licenses/update_pattern/')->to('License#update_pattern')->name('update_pattern'); $admin->post('/licenses/update_patterns')->to('License#update_patterns')->name('update_patterns'); $admin->delete('/licenses/remove_pattern/')->to('License#remove_pattern')->name('remove_pattern'); - $admin->get('/licenses/*name')->to('License#show')->name('license_show'); + $public->get('/licenses/*name')->to('License#show')->name('license_show'); $public->get('/products')->to('Product#list')->name('products'); $public->get('/pagination/products/known')->to('Pagination#known_products')->name('pagination_known_products'); diff --git a/t/index.t b/t/index.t index 9f6b08fc1c..48483a665b 100644 --- a/t/index.t +++ b/t/index.t @@ -138,9 +138,9 @@ $config->{acceptable_risk} = 5; $t = Test::Mojo->new(Cavil => $config); # License management requires a login -$t->get_ok('/licenses')->status_is(403)->content_like(qr/Permission/); +$t->get_ok('/licenses/edit_pattern/1')->status_is(403)->content_like(qr/Permission/); $t->get_ok('/login')->status_is(302)->header_is(Location => '/'); -$t->get_ok('/licenses')->status_is(200)->content_like(qr/Licenses/); +$t->get_ok('/licenses/edit_pattern/1')->status_is(200)->content_like(qr/License/); subtest 'Pattern change' => sub { $t->get_ok('/licenses/edit_pattern/1')->status_is(200)->element_exists('input[name=license][value=Apache-2.0]') diff --git a/t/login.t b/t/login.t index 6d3f35d62b..58c6f9f511 100644 --- a/t/login.t +++ b/t/login.t @@ -40,10 +40,8 @@ subtest 'Not authenticated' => sub { $t->post_ok('/reviews/add_ignore')->status_is(403)->content_like(qr/Permission/); $t->post_ok('/reviews/reindex/1')->status_is(403)->content_like(qr/Permission/); $t->get_ok('/reviews/file_view/1/LICENSE')->status_is(403)->content_like(qr/Permission/); - $t->get_ok('/licenses')->status_is(403)->content_like(qr/Permission/); $t->get_ok('/licenses/new_pattern')->status_is(403)->content_like(qr/Permission/); $t->post_ok('/licenses/create_pattern')->status_is(403)->content_like(qr/Permission/); - $t->get_ok('/licenses/Apache-2.0')->status_is(403)->content_like(qr/Permission/); $t->get_ok('/licenses/edit_pattern/1')->status_is(403)->content_like(qr/Permission/); $t->post_ok('/licenses/update_pattern/1')->status_is(403)->content_like(qr/Permission/); $t->post_ok('/licenses/update_patterns')->status_is(403)->content_like(qr/Permission/); @@ -57,12 +55,11 @@ subtest 'OpenID' => sub { subtest 'Dummy' => sub { delete $config->{openid}; $t = Test::Mojo->new(Cavil => $config); - $t->get_ok('/licenses')->status_is(403)->content_like(qr/Permission/); + $t->get_ok('/upload')->status_is(403)->content_like(qr/Permission/); $t->get_ok('/login')->status_is(302)->header_is(Location => '/'); - $t->get_ok('/licenses')->status_is(200)->content_like(qr/Licenses/); - $t->get_ok('/licenses/Apache-2.0')->status_is(200)->content_like(qr/Apache-2.0/); + $t->get_ok('/upload')->status_is(200)->content_like(qr/Upload/); $t->get_ok('/logout')->status_is(302)->header_is(Location => '/'); - $t->get_ok('/licenses')->status_is(403)->content_like(qr/Permission/); + $t->get_ok('/upload')->status_is(403)->content_like(qr/Permission/); }; done_testing; diff --git a/templates/layouts/default.html.ep b/templates/layouts/default.html.ep index b188db6d49..7bbc3dc600 100644 --- a/templates/layouts/default.html.ep +++ b/templates/layouts/default.html.ep @@ -51,10 +51,10 @@ + % if (current_user_has_role 'admin') { - diff --git a/templates/license/show.html.ep b/templates/license/show.html.ep index 6dbf7ca883..cf96e2beb5 100644 --- a/templates/license/show.html.ep +++ b/templates/license/show.html.ep @@ -28,7 +28,9 @@

Patterns for this license + % if (current_user_has_role 'admin') { %= link_to '(Add new)' => url_for('new_pattern')->query('license-name' => $license), class => 'btn', role => 'btn' + % }

    @@ -36,7 +38,9 @@ % for my $match (@$patterns) {
  • Created - + % if (current_user_has_role 'admin') { + + % }
    <%= $match->{pattern} %>
    % if ($match->{packname}) {