From 124aa8a9bfdc51bcde16f72f86fd8033baa90ad5 Mon Sep 17 00:00:00 2001 From: Paul Makles <paulmakles@gmail.com> Date: Mon, 18 Jan 2021 14:01:27 +0000 Subject: [PATCH] Fix user permissions. --- src/database/permissions/user.rs | 20 ++++++++++++++++---- src/routes/root.rs | 2 +- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/database/permissions/user.rs b/src/database/permissions/user.rs index f08790a..54c8dc8 100644 --- a/src/database/permissions/user.rs +++ b/src/database/permissions/user.rs @@ -28,11 +28,23 @@ pub async fn calculate(user: &User, target: &str) -> UserPermissions<[u32; 1]> { // otherwise -> Access // otherwise; None - if let RelationshipStatus::Friend = get_relationship(&user, &target) { - UserPermissions([UserPermission::Access + UserPermission::SendMessage + UserPermission::Invite]) - } else { - UserPermissions([ 0 ]) + let mut permissions: u32 = 0; + match get_relationship(&user, &target) { + RelationshipStatus::Friend => { + return UserPermissions([ UserPermission::Access + UserPermission::SendMessage + UserPermission::Invite ]) + } + RelationshipStatus::Blocked | + RelationshipStatus::BlockedOther => { + return UserPermissions([ UserPermission::Access as u32 ]) + } + RelationshipStatus::Incoming | + RelationshipStatus::Outgoing => { + permissions = UserPermission::Access as u32; + } + _ => {} } + + UserPermissions([ permissions ]) } pub fn get_relationship(a: &User, b: &str) -> RelationshipStatus { diff --git a/src/routes/root.rs b/src/routes/root.rs index 3465ac2..8f8f5e8 100644 --- a/src/routes/root.rs +++ b/src/routes/root.rs @@ -8,7 +8,7 @@ use rocket_contrib::json::JsonValue; #[get("/")] pub async fn root() -> JsonValue { json!({ - "revolt": "0.3.0-alpha", + "revolt": "0.3.1-alpha.0", "features": { "registration": !*DISABLE_REGISTRATION, "captcha": { -- GitLab