X-Git-Url: http://git.ieval.ro/?p=gruntmaster-page.git;a=blobdiff_plain;f=lib%2FPlack%2FApp%2FGruntmaster.pm;fp=lib%2FPlack%2FApp%2FGruntmaster.pm;h=f876bae0dba1534ae04fe33e242d923c50323dc7;hp=4872da563fd8506f262c248cf21fa41a88c1a25f;hb=02d17b02b29aad989599329ff7a4ee6cae798c73;hpb=931541d7b6017217b1a9a9a08d78f9783128621e diff --git a/lib/Plack/App/Gruntmaster.pm b/lib/Plack/App/Gruntmaster.pm index 4872da5..f876bae 100644 --- a/lib/Plack/App/Gruntmaster.pm +++ b/lib/Plack/App/Gruntmaster.pm @@ -84,13 +84,15 @@ sub dispatch_request{ sub (/src/:job) { return NOT_FOUND if !job; - my $isowner = remote_user && remote_user->id eq job->rawowner; - my $private = job->private || job->problem->private || job->contest && job->contest->is_running; + my $job = db->job_full($_{job}); + my $isowner = remote_user && remote_user->id eq $job->{owner}; + my $contest = $job->{contest} && db->contest_entry($job->{contest}); + my $private = $job->{private} || $contest && ($contest->{started} && !$contest->{finished}); forbid !$isowner && $private; my $privacy = $private ? 'private' : 'public'; my @headers = ('X-Forever' => 1, 'Cache-Control' => "$privacy, max-age=604800", 'Content-Type' => 'text/plain'); push @headers, (Vary => 'Authorization') if $private; - [200, \@headers, [job->source]] + [200, \@headers, [$job->{source}]] }, sub (?:format~) {