From fa40f6f7a2f4d9c1efc79ecd27c236fd36279432 Mon Sep 17 00:00:00 2001 From: Lucy Cifferello <12953208+elvece@users.noreply.github.com> Date: Wed, 12 Apr 2023 17:01:19 -0600 Subject: [PATCH] fix whitelist logic and default it to empty --- config/settings.yml | 2 +- src/Handler/Admin.hs | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/config/settings.yml b/config/settings.yml index 0cdd972..7392b35 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -39,7 +39,7 @@ marketplace-name: "_env:MARKETPLACE_NAME:CHANGE ME" max-eos-version: "_env:MAX_VERSION:0.3.4.0" min-eos-version: "_env:MIN_VERSION:0.3.4.0" run-migration: "_env:RUN_MIGRATION:false" -whitelist: "_env:WHITELIST:ADD ME" +whitelist: "_env:WHITELIST:" database: database: "_env:PG_DATABASE:start9_registry" diff --git a/src/Handler/Admin.hs b/src/Handler/Admin.hs index ccdcfed..4855283 100644 --- a/src/Handler/Admin.hs +++ b/src/Handler/Admin.hs @@ -117,7 +117,9 @@ import Startlude ( (<<$>>), (<>), (>), - (&&) + (&&), + (||), + (<=) ) import System.FilePath ( (<.>), @@ -165,9 +167,8 @@ postPkgUploadR = do PackageManifest{..} <- do liftIO (decodeFileStrict (dir "manifest.json")) `orThrow` sendResponseText status500 "Failed to parse manifest.json" - if (not $ elem packageManifestId whitelist && (length whitelist > 0)) - then sendResponseText status500 "Package does not belong on this registry." - else do + if ((length whitelist > 0 && (packageManifestId `elem` whitelist)) || length whitelist <= 0) + then do renameFile path (dir (toS . unPkgId) packageManifestId <.> "s9pk") let targetPath = pkgRepoFileRoot show packageManifestId show packageManifestVersion removePathForcibly targetPath @@ -181,6 +182,7 @@ postPkgUploadR = do Just name -> do now <- liftIO getCurrentTime runDB $ insert_ (Upload (AdminKey name) (PkgRecordKey packageManifestId) packageManifestVersion now) + else sendResponseText status500 "Package does not belong on this registry." where retry m = runMaybeT . asum $ replicate 3 (MaybeT $ hush <$> try @_ @SomeException m)