Remove membership classes (spec, registry schema, enforcement); no roles or tiers
This commit is contained in:
+9
-19
@@ -16,7 +16,7 @@ use serde_json::{Value, json};
|
||||
use tokio::net::TcpListener;
|
||||
use tokio::task::JoinHandle;
|
||||
|
||||
use crate::config::{CLASS_ENRICHMENT, Config, Member, load_members};
|
||||
use crate::config::{Config, Member, load_members};
|
||||
use crate::crypto::{Keypair, now_ts, poll_signing_bytes};
|
||||
use crate::engine::{SearchEngine, TantivyEngine};
|
||||
use crate::index::{LocalIndex, SearchHit, response_items};
|
||||
@@ -193,13 +193,10 @@ impl Node {
|
||||
*self.members_mtime.lock().expect("members mtime lock") = mtime;
|
||||
}
|
||||
|
||||
fn member_class(&self, members: &[Member], pubkey: &str) -> Option<String> {
|
||||
fn member_known(&self, members: &[Member], pubkey: &str) -> bool {
|
||||
members
|
||||
.iter()
|
||||
.find(|member| {
|
||||
member.pubkey == pubkey || member.previous.iter().any(|key| key == pubkey)
|
||||
})
|
||||
.map(|member| member.class.clone())
|
||||
.any(|member| member.pubkey == pubkey || member.previous.iter().any(|key| key == pubkey))
|
||||
}
|
||||
|
||||
pub fn aggregate_for(&self, period: &str, member: Option<&str>) -> AggregateBody {
|
||||
@@ -464,21 +461,19 @@ impl Node {
|
||||
return;
|
||||
}
|
||||
self.refresh_members();
|
||||
let (class, listed) = if let Some(watcher) = &self.registry {
|
||||
let listed = if let Some(watcher) = &self.registry {
|
||||
watcher.refresh_if_changed();
|
||||
match watcher.authorized(&envelope.key, now_ts()) {
|
||||
Some((id, class)) if id == envelope.from => (Some(class), true),
|
||||
_ => (None, false),
|
||||
Some(id) if id == envelope.from => true,
|
||||
_ => false,
|
||||
}
|
||||
} else {
|
||||
let members = self.members.read().expect("members lock");
|
||||
let class = self.member_class(&members, &envelope.key);
|
||||
let listed = if members.is_empty() {
|
||||
if members.is_empty() {
|
||||
self.config.node.dev_bootstrap
|
||||
} else {
|
||||
class.is_some() && envelope.from == envelope.key
|
||||
};
|
||||
(class, listed)
|
||||
self.member_known(&members, &envelope.key) && envelope.from == envelope.key
|
||||
}
|
||||
};
|
||||
if !listed {
|
||||
return;
|
||||
@@ -520,11 +515,6 @@ impl Node {
|
||||
let Ok(body) = envelope.parse_body::<ResponseBody>() else {
|
||||
return;
|
||||
};
|
||||
if class.as_deref() == Some(CLASS_ENRICHMENT)
|
||||
&& body.results.iter().any(|result| result.content.is_some())
|
||||
{
|
||||
return;
|
||||
}
|
||||
let mut pending = self.pending.lock().expect("pending lock");
|
||||
if let Some(list) = pending.get_mut(&body.qid) {
|
||||
list.push((envelope.from.clone(), body));
|
||||
|
||||
Reference in New Issue
Block a user