From 0758ca323945fd2425b96ccde3754832441d7960 Mon Sep 17 00:00:00 2001 From: Filip Gralinski Date: Sat, 1 Sep 2018 10:48:08 +0200 Subject: [PATCH] fix triggering an evaluation when running in the auto-opening mode --- Handler/MakePublic.hs | 16 +++++++++++----- Handler/ShowChallenge.hs | 2 +- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Handler/MakePublic.hs b/Handler/MakePublic.hs index 4918252..8ca4457 100644 --- a/Handler/MakePublic.hs +++ b/Handler/MakePublic.hs @@ -11,11 +11,13 @@ import Data.Text as T import Handler.Runner getMakePublicR :: SubmissionId -> Handler TypedContent -getMakePublicR submissionId = runViewProgress $ doMakePublic submissionId +getMakePublicR submissionId = do + userId <- requireAuthId + runViewProgress $ doMakePublic userId submissionId -doMakePublic :: SubmissionId -> Channel -> Handler () -doMakePublic submissionId chan = do - isOwner <- checkWhetherUserRepo submissionId +doMakePublic :: UserId -> SubmissionId -> Channel -> Handler () +doMakePublic userId submissionId chan = do + isOwner <- checkWhetherGivenUserRepo userId submissionId if not isOwner then err chan "Only the submitter can make a submission public!" @@ -48,6 +50,10 @@ pushRepo repoDir commit targetRepoUrl targetBranchName chan = do checkWhetherUserRepo :: SubmissionId -> Handler Bool checkWhetherUserRepo submissionId = do - submission <- runDB $ get404 submissionId userId <- requireAuthId + checkWhetherGivenUserRepo userId submissionId + +checkWhetherGivenUserRepo :: UserId -> SubmissionId -> Handler Bool +checkWhetherGivenUserRepo userId submissionId = do + submission <- runDB $ get404 submissionId return $ userId == submissionSubmitter submission diff --git a/Handler/ShowChallenge.hs b/Handler/ShowChallenge.hs index 5cd58af..79dcdf8 100644 --- a/Handler/ShowChallenge.hs +++ b/Handler/ShowChallenge.hs @@ -244,7 +244,7 @@ doCreateSubmission userId challengeId mDescription mTags repoSpec chan = do app <- getYesod if appAutoOpening $ appSettings app then - doMakePublic submissionId chan + doMakePublic userId submissionId chan else return () Nothing -> return ()