aboutsummaryrefslogtreecommitdiffstats
path: root/src/document
diff options
context:
space:
mode:
Diffstat (limited to 'src/document')
-rw-r--r--src/document/meta.rs2
-rw-r--r--src/document/signatures.rs4
2 files changed, 4 insertions, 2 deletions
diff --git a/src/document/meta.rs b/src/document/meta.rs
index 0c3ee89..5966b3c 100644
--- a/src/document/meta.rs
+++ b/src/document/meta.rs
@@ -16,6 +16,7 @@
//! writer if need be (`swarm::topology::swarm_ways`).
//! * `users/<name>`: the user registry: who the users are, and what each may do
//! (`access::registry`).
+//! * `access/signed`: the paths whose writes are signed (`document::signatures`).
/// The key every protocol path starts with.
pub(crate) const ROOT: &str = "_continuum";
@@ -30,6 +31,7 @@ pub(crate) const RELAYS: &str = "relays";
pub(crate) const TOPOLOGY: &str = "topology";
pub(crate) const DISSEMINATION: &str = "dissemination";
pub(crate) const USERS: &str = "users";
+pub(crate) const ACCESS: &str = "access";
/// The store path `_continuum/<parts…>`.
pub(crate) fn path(parts: &[&str]) -> Vec<String> {
diff --git a/src/document/signatures.rs b/src/document/signatures.rs
index d347e10..47e5917 100644
--- a/src/document/signatures.rs
+++ b/src/document/signatures.rs
@@ -24,7 +24,7 @@ use super::{ChangeHash, Document};
/// Where the swarm lists the paths whose writes are signed: a list of paths, each a
/// list of segments, as capabilities name them (`access.md`).
-pub(crate) const SIGNED_PATHS: [&str; 3] = ["_continuum", "access", "signed"];
+pub(crate) const SIGNED_PATHS: [&str; 3] = [super::meta::ROOT, super::meta::ACCESS, "signed"];
/// What a signature is made over: a domain, then the change's hash.
pub(crate) fn message(hash: &ChangeHash) -> Vec<u8> {
@@ -50,7 +50,7 @@ impl Sign {
Sign::Protocol => true,
Sign::Write { path, asked } => {
*asked
- || path.first().map(String::as_str) == Some(SIGNED_PATHS[0])
+ || super::meta::is_protocol(path)
|| listed(doc).iter().any(|signed| related(signed, path))
}
}