From: Ian Jackson Date: Sat, 15 May 2021 17:45:24 +0000 (+0100) Subject: cmdlistener: Use access_bundles in two more places X-Git-Tag: otter-0.6.0~275 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=a3ee1d41da8816e0c75790db76d665d37af10750;p=otter.git cmdlistener: Use access_bundles in two more places Signed-off-by: Ian Jackson --- diff --git a/daemon/cmdlistener.rs b/daemon/cmdlistener.rs index 13a2006d..92d88581 100644 --- a/daemon/cmdlistener.rs +++ b/daemon/cmdlistener.rs @@ -274,20 +274,23 @@ fn execute_and_respond(cs: &mut CommandStreamData, cmd: MgmtCommand, } MC::ListBundles { game } => { let (ag, gref) = start_access_game(&game)?; - let mut igu = gref.lock()?; - let (ig, _) = cs.check_acl(&ag, &mut igu, PCH::Instance, - TP_ACCESS_BUNDLES)?; - let bundles = ig.bundle_list.clone(); + let (bundles,_auth) = + access_bundles( + cs,&ag,&gref,TP_ACCESS_BUNDLES, + &mut |ig,_|{ + Ok(ig.bundle_list.clone()) + })?; MR::Bundles { bundles } } MC::DownloadBundle { game, id } => { - let ag = AccountsGuard::lock(); - let gref = Instance::lookup_by_name_unauth(&game)?; - let mut igu = gref.lock()?; - let (ig, _) = cs.check_acl(&ag, &mut igu, PCH::Instance, - TP_ACCESS_BUNDLES)?; - let f = id.open(&ig)?.ok_or_else(|| ME::BundleNotFound)?; - bulk_download = Some(Box::new(f)); + let (ag, gref) = start_access_game(&game)?; + access_bundles( + cs,&ag,&gref,TP_ACCESS_BUNDLES, + &mut |ig,_|{ + let f = id.open(&ig)?.ok_or_else(|| ME::BundleNotFound)?; + bulk_download = Some(Box::new(f)); + Ok(()) + })?; Fine } MC::ClearBundles { game } => {