From 0908c65f504ec56bcb368b3a020ddee5f251eb56 Mon Sep 17 00:00:00 2001 From: Michael Raitza Date: Fri, 16 Feb 2024 15:27:08 +0100 Subject: [PATCH] httpd: Filter-out private-but-pinned repos They should only be visible to localhost. --- radicle-httpd/src/api/v1/projects.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/radicle-httpd/src/api/v1/projects.rs b/radicle-httpd/src/api/v1/projects.rs index 149b0058..0ebeeae8 100644 --- a/radicle-httpd/src/api/v1/projects.rs +++ b/radicle-httpd/src/api/v1/projects.rs @@ -100,7 +100,14 @@ async fn project_root_handler( Visibility::Public => true, }) .collect::>(), - ProjectQuery::Pinned => storage.repositories_by_id(pinned.repositories.iter())?, + ProjectQuery::Pinned => storage + .repositories_by_id(pinned.repositories.iter())? + .into_iter() + .filter(|repo| match &repo.doc.visibility { + Visibility::Private { .. } => addr.ip().is_loopback(), + Visibility::Public => true, + }) + .collect::>(), }; projects.sort_by_key(|p| p.rid);