use Tie::Hash::Expire;
use constant AUTH_TIMEOUT => 5 * 60;
- use constant ACCESSLOG_FORMAT => '%{X-Forwarded-For}i|%h %u "%r" %>s %b "%{Referer}i" "%{User-agent}i"';
+ use constant ACCESSLOG_FORMAT => 'combined';
-use constant CONTENT_SECURITY_POLICY => q,default-src 'none'; script-src 'self'; style-src 'self'; img-src 'self'; connect-src 'self',;
+use constant CONTENT_SECURITY_POLICY => q,default-src 'none'; script-src 'self' static.mindcoding.ro www.google-analytics.com; style-src 'self' static.mindcoding.ro; img-src 'self' static.mindcoding.ro www.google-analytics.com; connect-src 'self',;
our $db //= Gruntmaster::Data->connect($ENV{GRUNTMASTER_DSN} // 'dbi:Pg:');
sub (/ed/:contest) {
forbid contest->is_running;
- response ed => 'Editorial of ' . contest->name, db->problem_list(contest => $_{contest}, solution => 1);
+ my $pblist = db->problem_list(contest => $_{contest}, solution => 1);
+ response ed => 'Editorial of ' . contest->name, {%$pblist, editorial => contest->editorial};
},
sub (/login) {
db->users->create({id => $_{username}, name => $_{name}, email => $_{email}, phone => $_{phone}, town => $_{town}, university => $_{university}, country => $_{country}, level => $_{level}});
db->user($_{username})->set_passphrase($_{password});
- purge '/us/';
reply 'Registered successfully';
},
owner => remote_user->id,
});
- purge '/log/';
[303, [Location => '/log/' . $newjob->id], []]
},