From 9e2250783c14a045be96396d4563cfa5d9562d7e Mon Sep 17 00:00:00 2001 From: Paul <paulmakles@gmail.com> Date: Wed, 7 Apr 2021 19:21:25 +0100 Subject: [PATCH] Allow people with mutual connections to see profile / status; fix username check. --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/database/entities/user.rs | 2 +- src/database/permissions/mod.rs | 6 +++--- src/database/permissions/user.rs | 5 +++-- src/routes/root.rs | 2 +- 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 91ad0db..908f390 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2475,7 +2475,7 @@ dependencies = [ [[package]] name = "revolt" -version = "0.4.0-alpha.5" +version = "0.4.0-alpha.6" dependencies = [ "async-std", "async-tungstenite", diff --git a/Cargo.toml b/Cargo.toml index 40d9685..c51af08 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "revolt" -version = "0.4.0-alpha.5" +version = "0.4.0-alpha.6" authors = ["Paul Makles <paulmakles@gmail.com>"] edition = "2018" diff --git a/src/database/entities/user.rs b/src/database/entities/user.rs index c3b7b2c..a89b023 100644 --- a/src/database/entities/user.rs +++ b/src/database/entities/user.rs @@ -110,7 +110,7 @@ impl User { /// Utility function for checking claimed usernames. pub async fn is_username_taken(username: &str) -> Result<bool> { - if username == "revolt" && username == "admin" { + if username.to_lowercase() == "revolt" && username.to_lowercase() == "admin" { return Ok(true); } diff --git a/src/database/permissions/mod.rs b/src/database/permissions/mod.rs index c29427e..7fc9b26 100644 --- a/src/database/permissions/mod.rs +++ b/src/database/permissions/mod.rs @@ -11,7 +11,7 @@ pub struct PermissionCalculator<'a> { user: Option<&'a User>, channel: Option<&'a Channel>, - has_mutual_conncetion: bool, + has_mutual_connection: bool, } impl<'a> PermissionCalculator<'a> { @@ -22,7 +22,7 @@ impl<'a> PermissionCalculator<'a> { user: None, channel: None, - has_mutual_conncetion: false, + has_mutual_connection: false, } } @@ -42,7 +42,7 @@ impl<'a> PermissionCalculator<'a> { pub fn with_mutual_connection(self) -> PermissionCalculator<'a> { PermissionCalculator { - has_mutual_conncetion: true, + has_mutual_connection: true, ..self } } diff --git a/src/database/permissions/user.rs b/src/database/permissions/user.rs index 4ff42bf..7d516ee 100644 --- a/src/database/permissions/user.rs +++ b/src/database/permissions/user.rs @@ -64,7 +64,7 @@ impl<'a> PermissionCalculator<'a> { _ => {} } - if self.has_mutual_conncetion + if self.has_mutual_connection || get_collection("channels") .find_one( doc! { @@ -84,7 +84,8 @@ impl<'a> PermissionCalculator<'a> { })? .is_some() { - return Ok(UserPermission::Access as u32); + // ! FIXME: add privacy settings + return Ok(UserPermission::Access + UserPermission::ViewProfile); } Ok(permissions) diff --git a/src/routes/root.rs b/src/routes/root.rs index 719af3d..c18ec1e 100644 --- a/src/routes/root.rs +++ b/src/routes/root.rs @@ -9,7 +9,7 @@ use rocket_contrib::json::JsonValue; #[get("/")] pub async fn root() -> JsonValue { json!({ - "revolt": "0.4.0-alpha.5", + "revolt": "0.4.0-alpha.6", "features": { "registration": !*DISABLE_REGISTRATION, "captcha": { -- GitLab