]> iEval git - gruntmaster-page.git/commitdiff
Use job_full & contest_entry in /src/:job
authorMarius Gavrilescu <marius@ieval.ro>
Sun, 29 Mar 2015 17:49:35 +0000 (20:49 +0300)
committerMarius Gavrilescu <marius@ieval.ro>
Wed, 12 Aug 2015 15:15:13 +0000 (18:15 +0300)
lib/Plack/App/Gruntmaster.pm

index 4872da563fd8506f262c248cf21fa41a88c1a25f..f876bae0dba1534ae04fe33e242d923c50323dc7 100644 (file)
@@ -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~) {
This page took 0.025668 seconds and 4 git commands to generate.