From 0a41ab2b128ae538dea4c9b3f092fcdea531d0c9 Mon Sep 17 00:00:00 2001 From: Lucy Cifferello <12953208+elvece@users.noreply.github.com> Date: Tue, 16 Apr 2024 14:10:13 -0400 Subject: [PATCH] retype AdminPkgs since PkgRecord id as key will not yet exist --- src/Database/Queries.hs | 2 +- src/Handler/Admin.hs | 4 ++-- src/Handler/Util.hs | 4 ++-- src/Model.hs | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Database/Queries.hs b/src/Database/Queries.hs index 61cb5eb..aaf5200 100644 --- a/src/Database/Queries.hs +++ b/src/Database/Queries.hs @@ -329,7 +329,7 @@ getVersionPlatform pkgId arches = do pure v pure $ entityVal <$> vps -getAllowedPkgs :: (Monad m, MonadIO m) => PkgRecordId -> AdminId -> ReaderT SqlBackend m [AdminPkgs] +getAllowedPkgs :: (Monad m, MonadIO m) => PkgId -> AdminId -> ReaderT SqlBackend m [AdminPkgs] getAllowedPkgs pkgId adminId = do pkgs <- select $ do p <- from $ table @AdminPkgs diff --git a/src/Handler/Admin.hs b/src/Handler/Admin.hs index 95b6448..475452c 100644 --- a/src/Handler/Admin.hs +++ b/src/Handler/Admin.hs @@ -168,7 +168,7 @@ postCheckPkgAuthR pkgId = do else if authorized && newPkg -- if pkg is whitelisted and a new upload, add as authorized for this admin user then do - runDB $ insert_ (AdminPkgs (AdminKey name) (PkgRecordKey pkgId)) + runDB $ insert_ (AdminPkgs (AdminKey name) pkgId) sendResponseText status200 "User authorized to upload this package." else sendResponseText status401 "User not authorized to upload this package." else sendResponseText status500 "Package does not belong on this registry." @@ -207,7 +207,7 @@ postPkgUploadR = do if authorized then do now <- liftIO getCurrentTime - runDB $ insert_ (Upload (AdminKey name) (PkgRecordKey packageManifestId) packageManifestVersion now) + runDB $ insert_ (Upload (AdminKey name) (PkgRecordKey packageManifestId)packageManifestVersion now) else sendResponseText status401 "User not authorized to upload this package." else sendResponseText status500 "Package does not belong on this registry." where diff --git a/src/Handler/Util.hs b/src/Handler/Util.hs index 7937586..3a03451 100644 --- a/src/Handler/Util.hs +++ b/src/Handler/Util.hs @@ -256,12 +256,12 @@ areRegexMatchesEqual textMap (PackageDevice regexMap) = case MM.lookup key textMap of val -> or $ regexMatch regexPattern <$> val -checkAdminAllowedPkgs :: PkgId -> Text -> Handler (Bool, Bool) -- (exists, new) +checkAdminAllowedPkgs :: PkgId -> Text -> Handler (Bool, Bool) -- (authorized, newPkg) checkAdminAllowedPkgs pkgId adminId = do -- if pkg does not exist yet, allow, because authorized by whitelist pkg <- runDB $ getPkg (PkgRecordKey pkgId) if length pkg > 0 then do - res <- runDB $ getAllowedPkgs (PkgRecordKey pkgId) (AdminKey adminId) + res <- runDB $ getAllowedPkgs pkgId (AdminKey adminId) pure $ if length res > 0 then (True, False) else (False, False) else pure (True, True) \ No newline at end of file diff --git a/src/Model.hs b/src/Model.hs index e6ecaa9..5813bdc 100644 --- a/src/Model.hs +++ b/src/Model.hs @@ -155,7 +155,7 @@ Admin AdminPkgs admin AdminId - pkgId PkgRecordId + pkgId PkgId UniqueAdminPkg pkgId admin Upload