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
}
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;
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) {
+ mark_open $id, $user;
+ debug $env => "Marking problem $id of contest $contest open by $user";
+ }
$htc->param(cansubmit => 1);
if ($contest) {