fix(submission): ignore extension case within zips

This commit is contained in:
Gregor Kleen 2019-11-04 13:29:18 +01:00
parent 5f04593b30
commit f8442cfea9

View File

@ -50,6 +50,8 @@ import Text.Hamlet (ihamletFile)
import qualified Control.Monad.Catch as E (Handler(..))
import qualified Data.CaseInsensitive as CI
data AssignSubmissionException = NoCorrectors
| NoCorrectorsByProportion
| SubmissionsNotFound (NonNull (Set SubmissionId))
@ -428,7 +430,7 @@ sinkSubmission userId mExists isUpdate = do
, Just (map unpack . Set.toList . toNullable -> exts) <- extensionRestriction
= Conduit.mapM $ \x -> if
| Left File{..} <- x
, none (`isExtensionOf` fileTitle) exts
, none ((flip isExtensionOf `on` CI.foldCase) fileTitle) exts
, isn't _Nothing fileContent -- File record is not a directory, we don't care about those
-> throwM $ InvalidFileTitleExtension fileTitle
| otherwise