From cf8b386c53f0cde009ad168f8ba7365c153f135c Mon Sep 17 00:00:00 2001 From: Lucy Cifferello <12953208+elvece@users.noreply.github.com> Date: Wed, 12 Apr 2023 15:57:27 -0600 Subject: [PATCH] ensure whitelist is present before checking --- src/Handler/Admin.hs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Handler/Admin.hs b/src/Handler/Admin.hs index 070bb3e..ccdcfed 100644 --- a/src/Handler/Admin.hs +++ b/src/Handler/Admin.hs @@ -116,6 +116,8 @@ import Startlude ( (<$>), (<<$>>), (<>), + (>), + (&&) ) import System.FilePath ( (<.>), @@ -144,8 +146,7 @@ import Yesod ( import Yesod.Auth (YesodAuth (maybeAuthId)) import Yesod.Core.Types (JSONResponse (JSONResponse)) import Database.Persist.Sql (runSqlPool) -import Data.List (elem) - +import Data.List (elem, length) postPkgUploadR :: Handler () postPkgUploadR = do @@ -164,7 +165,7 @@ postPkgUploadR = do PackageManifest{..} <- do liftIO (decodeFileStrict (dir "manifest.json")) `orThrow` sendResponseText status500 "Failed to parse manifest.json" - if (not $ elem packageManifestId whitelist) + if (not $ elem packageManifestId whitelist && (length whitelist > 0)) then sendResponseText status500 "Package does not belong on this registry." else do renameFile path (dir (toS . unPkgId) packageManifestId <.> "s9pk")