From: Marius Gavrilescu Date: Thu, 13 Feb 2014 20:48:38 +0000 (+0200) Subject: Merge branch 'master' into gruntmaster X-Git-Url: http://git.ieval.ro/?a=commitdiff_plain;h=bb6e0353c7fad00f925c538fbaca704066df5926;hp=8b15e5c235c53e758a5f7576a987f3593efeb22a;p=gruntmaster-page.git Merge branch 'master' into gruntmaster --- diff --git a/app.psgi b/app.psgi index 9908172..62a6f79 100644 --- 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; diff --git a/lib/Gruntmaster/Page/Base.pm b/lib/Gruntmaster/Page/Base.pm index 89f8478..9e2d030 100644 --- a/lib/Gruntmaster/Page/Base.pm +++ b/lib/Gruntmaster/Page/Base.pm @@ -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 { diff --git a/lib/Gruntmaster/Page/Pb/Entry.pm b/lib/Gruntmaster/Page/Pb/Entry.pm index 95b15a4..8b770ef 100644 --- a/lib/Gruntmaster/Page/Pb/Entry.pm +++ b/lib/Gruntmaster/Page/Pb/Entry.pm @@ -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 f7399d6..fc3bcd0 100755 --- 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