]> iEval git - plack-app-gruntmaster.git/blobdiff - lib/Plack/App/Gruntmaster.pm
Add a fake login link
[plack-app-gruntmaster.git] / lib / Plack / App / Gruntmaster.pm
index 1d8fc325e032d885fff24f672a0dd0274d829287..8aab08c2c7e261f50418d9f5454d44fb25baa1a6 100644 (file)
@@ -148,6 +148,12 @@ sub dispatch_request{
                        }, 10
                },
 
+               sub (/login) {
+                       forbid !remote_user;
+
+                       [204, ['Set-Cookie' => "username=".remote_user->id], []]
+               },
+
                sub (/ct/:contest/log/st) { redirect "/st/$_{contest}" },
 
                sub (/us/)                                        { response us => 'Users', {us => db->user_list} },
@@ -216,7 +222,7 @@ sub dispatch_request{
 
                        my $source = $prog ? read_file $prog->path : $_{source_code};
                        unlink $prog->path if $prog;
-                       db->jobs->create({
+                       my $newjob = db->jobs->create({
                                maybe contest => $_{contest},
                                maybe private => problem->private,
                                date => time,
@@ -228,7 +234,7 @@ sub dispatch_request{
                        });
 
                        purge '/log/';
-                       redirect $_{contest} ? "/log/?contest=$_{contest}" : '/log/';
+                       [303, [Location => '/log/' . $newjob->id], []]
                }
        }
 }
This page took 0.023537 seconds and 4 git commands to generate.