diff --git a/src/database/permissions/user.rs b/src/database/permissions/user.rs index f08790ababfba499bee0f574e3051e21e971958b..54c8dc88b595024d3ab1a1c255c4bb234a501a7f 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 3465ac269e276e00489bdbe5620f2fc50345df5c..8f8f5e8368112da948a7ae12b17b283a7ada7f72 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": {