Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
node: check policy before visibility
Fintan Halpenny committed 1 year ago
commit f244d89e56f8d860d1d55d0e9031706fc0c6f5f7
parent 1d57778f6b9a5731fa802d4f07b497938461072e
1 file changed +6 -1
modified radicle-node/src/worker.rs
@@ -280,9 +280,14 @@ impl Worker {

    fn is_authorized(&self, remote: NodeId, rid: RepoId) -> Result<(), UploadError> {
        let policy = self.policies.seed_policy(&rid)?.policy;
+
        // Check policy first, since if we're blocking then we likely don't have
+
        // the repository.
+
        if policy.is_block() {
+
            return Err(UploadError::Unauthorized(remote, rid));
+
        }
        let repo = self.storage.repository(rid)?;
        let doc = repo.identity_doc()?;
-
        if !doc.is_visible_to(&remote) || policy.is_block() {
+
        if !doc.is_visible_to(&remote) {
            Err(UploadError::Unauthorized(remote, rid))
        } else {
            Ok(())