Merge branch 'master' into gruntmaster
authorMarius Gavrilescu <marius@ieval.ro>
Thu, 13 Feb 2014 20:48:38 +0000 (22:48 +0200)
committerMarius Gavrilescu <marius@ieval.ro>
Thu, 13 Feb 2014 20:48:38 +0000 (22:48 +0200)
app.psgi
lib/Gruntmaster/Page/Base.pm
lib/Gruntmaster/Page/Pb/Entry.pm
run

index 9908172efb807320b8562f03bc201b43a6048c40..62a6f790815f47cbac9fa032b6fce550314c392e 100644 (file)
--- a/app.psgi
+++ b/app.psgi
@@ -24,6 +24,7 @@ sub debug {
 sub some_auth_required {
        my $r = Plack::Request->new($_[0]);
        return 1 if $_[0]->{'gruntmaster.reqadmin'} || $r->path eq '/action/passwd' || $r->path =~ m,/pb/$word/submit$,;
+       return 1 if $r->path =~ m,^/ct/$word/pb/$word, && time < contest_end $1;
        0
 }
 
@@ -39,7 +40,7 @@ sub admin_required {
 sub require_admin {
        my $app = $_[0];
        sub {
-               *__ANON__ = "require_admin_middleware";
+               local *__ANON__ = "require_admin_middleware";
                my $env = $_[0];
                my $r = Plack::Request->new($env);
                $env->{'gruntmaster.reqadmin'} = 1 if admin_required $r->path;
index 89f8478e6c62ce5cfa9c01cd7dd542ed0a66e911..9e2d03034cc5c8550499301beb3a67d6825199e5 100644 (file)
@@ -74,11 +74,14 @@ sub generate{
        $self->_generate($htc, $lang, @args);
        my $out = $htc->output;
        utf8::downgrade($out);
-       [200, ['Content-Type' => 'text/html', 'Content-Language' => $_[1], 'Vary' => 'Accept-Language', 'X-Forever' => 1, 'Cache-Control' => 'max-age=' . $self->max_age], [ $out ] ]
+       my $vary = 'Accept-Language, ' . $self->vary;
+       [200, ['Content-Type' => 'text/html', 'Content-Language' => $_[1], 'Vary' => $vary, 'X-Forever' => 1, 'Cache-Control' => 'max-age=' . $self->max_age], [ $out ] ]
 }
 
 sub _generate {}
 
+sub vary {}
+
 sub max_age { 60 }
 
 sub variants {
index 95b15a40abf74c3a4f43f084325e3cd9ef200b00..8b770efe3a24bcc5f193675171a685e364480227 100644 (file)
@@ -12,6 +12,12 @@ use constant FORMATS => [qw/C CPP JAVA PERL PYTHON/];
 sub _generate{
        my ($self, $htc, $lang, $env, $contest, $id) = @_;
        debug $env => "language is '$lang', contest is '$contest', id is '$id'";
+       my $user = $env->{REMOTE_USER};
+       if ($contest && $user) {
+               local $Gruntmaster::Data::contest = $contest;
+               mark_open $id, $user;
+               debug $env => "Marking problem $id of contest $contest open by $user";
+       }
 
        $htc->param(cansubmit => 1);
        if ($contest) {
@@ -27,4 +33,7 @@ sub _generate{
        $htc->param(statement => problem_statement $id);
 }
 
+sub vary { 'Authorization' }
+sub max_age { 600 }
+
 1
diff --git a/run b/run
index f7399d6b26b817086b9135f9f3695fecda780025..fc3bcd04b786316d39f1bf46b7b463be966b2d71 100755 (executable)
--- a/run
+++ b/run
@@ -2,4 +2,4 @@
 export PURGE_HOST=gm.ieval.ro
 export AAP_ROOTDIR=/var/www/auth/us/
 export PLACK_ENV=deployment
-exec start_server --port=8081 -- plackup -s Starlet -Ilib
+exec start_server --port=8081 -- plackup -s Starlet -Ilib -L Delayed
This page took 0.013548 seconds and 4 git commands to generate.