Allow users to migrate from level 0 to 1
This commit is contained in:
parent
78c3443a92
commit
33070b62f1
106
src/user.rs
106
src/user.rs
|
@ -449,11 +449,11 @@ impl User {
|
||||||
};
|
};
|
||||||
|
|
||||||
// Can we level up the main credential?
|
// Can we level up the main credential?
|
||||||
let can_level_up = reachcred.is_some()
|
let can_level_up = level == 0
|
||||||
&& (level == 0
|
&& eligible_for_trust_promotion(&config.la_net, &self.primary_cred).await
|
||||||
&& eligible_for_trust_promotion(&config.la_net, &self.primary_cred).await
|
|| reachcred.is_some()
|
||||||
|| level > 0
|
&& level > 0
|
||||||
&& eligible_for_level_up(&config.la_net, &self.primary_cred).await);
|
&& eligible_for_level_up(&config.la_net, &self.primary_cred).await;
|
||||||
|
|
||||||
// Can we migrate the main credential?
|
// Can we migrate the main credential?
|
||||||
let can_migrate = reachcred.is_none() && level >= MIN_TRUST_LEVEL;
|
let can_migrate = reachcred.is_none() && level >= MIN_TRUST_LEVEL;
|
||||||
|
@ -608,8 +608,6 @@ impl User {
|
||||||
// let's just allow it.
|
// let's just allow it.
|
||||||
|
|
||||||
if can_level_up {
|
if can_level_up {
|
||||||
// If we can level up/trust migrate, do so
|
|
||||||
|
|
||||||
// Trust migration from level 0 to level 1
|
// Trust migration from level 0 to level 1
|
||||||
let cred = if level == 0 {
|
let cred = if level == 0 {
|
||||||
trust_migration(
|
trust_migration(
|
||||||
|
@ -653,6 +651,7 @@ impl User {
|
||||||
get_migration_pub(&config.la_pubkeys),
|
get_migration_pub(&config.la_pubkeys),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
self.primary_cred = cred;
|
self.primary_cred = cred;
|
||||||
self.secondary_cred = None;
|
self.secondary_cred = None;
|
||||||
} else if second_level_up {
|
} else if second_level_up {
|
||||||
|
@ -672,6 +671,7 @@ impl User {
|
||||||
get_migration_pub(&config.la_pubkeys),
|
get_migration_pub(&config.la_pubkeys),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
self.primary_cred = cred;
|
self.primary_cred = cred;
|
||||||
self.secondary_cred = None;
|
self.secondary_cred = None;
|
||||||
} else if second_cred.is_some() {
|
} else if second_cred.is_some() {
|
||||||
|
@ -783,56 +783,56 @@ impl User {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Censor user tries to level up their primary credential
|
// Censor user tries to level up their primary credential
|
||||||
if reachcred.is_some() {
|
if level == 0 && eligible_for_trust_promotion(&config.la_net, &self.primary_cred).await
|
||||||
if level == 0 && eligible_for_trust_promotion(&config.la_net, &self.primary_cred).await
|
|| reachcred.is_some()
|
||||||
|| level > 0 && eligible_for_level_up(&config.la_net, &self.primary_cred).await
|
&& level > 0
|
||||||
{
|
&& eligible_for_level_up(&config.la_net, &self.primary_cred).await
|
||||||
let new_cred = if level == 0 {
|
{
|
||||||
trust_migration(
|
let new_cred = if level == 0 {
|
||||||
|
trust_migration(
|
||||||
|
&config.la_net,
|
||||||
|
&self.primary_cred,
|
||||||
|
&trust_promotion(
|
||||||
&config.la_net,
|
&config.la_net,
|
||||||
&self.primary_cred,
|
&self.primary_cred,
|
||||||
&trust_promotion(
|
|
||||||
&config.la_net,
|
|
||||||
&self.primary_cred,
|
|
||||||
get_lox_pub(&config.la_pubkeys),
|
|
||||||
)
|
|
||||||
.await?,
|
|
||||||
get_lox_pub(&config.la_pubkeys),
|
get_lox_pub(&config.la_pubkeys),
|
||||||
get_migration_pub(&config.la_pubkeys),
|
|
||||||
)
|
)
|
||||||
.await?
|
.await?,
|
||||||
} else {
|
get_lox_pub(&config.la_pubkeys),
|
||||||
level_up(
|
get_migration_pub(&config.la_pubkeys),
|
||||||
&config.la_net,
|
)
|
||||||
&self.primary_cred,
|
.await?
|
||||||
&reachcred.unwrap(),
|
} else {
|
||||||
get_lox_pub(&config.la_pubkeys),
|
level_up(
|
||||||
get_reachability_pub(&config.la_pubkeys),
|
&config.la_net,
|
||||||
)
|
&self.primary_cred,
|
||||||
.await?
|
&reachcred.unwrap(),
|
||||||
};
|
get_lox_pub(&config.la_pubkeys),
|
||||||
self.primary_cred = new_cred;
|
get_reachability_pub(&config.la_pubkeys),
|
||||||
let (bucket, _reachcred) = get_bucket(&config.la_net, &self.primary_cred).await?;
|
)
|
||||||
// Make sure each bridge is in global bridges set and
|
.await?
|
||||||
// known by censor
|
};
|
||||||
for bl in bucket {
|
self.primary_cred = new_cred;
|
||||||
let fingerprint = bl.get_hashed_fingerprint();
|
let (bucket, _reachcred) = get_bucket(&config.la_net, &self.primary_cred).await?;
|
||||||
if !bridges.contains_key(&fingerprint) {
|
// Make sure each bridge is in global bridges set and
|
||||||
let bridge = Bridge::from_bridge_line(&bl);
|
// known by censor
|
||||||
bridges.insert(fingerprint, bridge);
|
for bl in bucket {
|
||||||
}
|
let fingerprint = bl.get_hashed_fingerprint();
|
||||||
censor.learn_bridge(&fingerprint);
|
if !bridges.contains_key(&fingerprint) {
|
||||||
if level == 2 {
|
let bridge = Bridge::from_bridge_line(&bl);
|
||||||
// level up to 3
|
bridges.insert(fingerprint, bridge);
|
||||||
// Give censor an additional credential
|
}
|
||||||
censor.give_lox_cred(&fingerprint, &self.primary_cred, true);
|
censor.learn_bridge(&fingerprint);
|
||||||
} else if level > 2 {
|
if level == 2 {
|
||||||
// level up to 4
|
// level up to 3
|
||||||
// Replace censor's credential with newer one,
|
// Give censor an additional credential
|
||||||
// but don't add to count of censor's
|
censor.give_lox_cred(&fingerprint, &self.primary_cred, true);
|
||||||
// credentials
|
} else if level > 2 {
|
||||||
censor.give_lox_cred(&fingerprint, &self.primary_cred, false);
|
// level up to 4
|
||||||
}
|
// Replace censor's credential with newer one,
|
||||||
|
// but don't add to count of censor's
|
||||||
|
// credentials
|
||||||
|
censor.give_lox_cred(&fingerprint, &self.primary_cred, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue