From 2851fbca25ecbc0394893f1c11ee1a7bbd3df9a2 Mon Sep 17 00:00:00 2001
From: Paul Makles <paulmakles@gmail.com>
Date: Sun, 21 Jun 2020 12:02:50 +0100
Subject: [PATCH] Handle self DM permissions correctly.

---
 src/database/permissions.rs | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/database/permissions.rs b/src/database/permissions.rs
index cdd0c67..e72236b 100644
--- a/src/database/permissions.rs
+++ b/src/database/permissions.rs
@@ -168,19 +168,23 @@ impl PermissionCalculator {
                             }
                         }
 
+                        // ? In this case, it is a "self DM".
+                        if other_user == "" {
+                            return 1024 + 128 + 32 + 16 + 1;
+                        }
+
                         let relationships = self.user.fetch_relationships();
                         let relationship =
                             get_relationship_internal(&self.user.id, &other_user, &relationships);
 
-                        if relationship == Relationship::SELF ||
-                           relationship == Relationship::Friend {
-                            permissions = 177;
+                        if relationship == Relationship::Friend {
+                            permissions = 1024 + 128 + 32 + 16 + 1;
                         } else if relationship == Relationship::Blocked
                             || relationship == Relationship::BlockedOther
                         {
                             permissions = 1;
                         } else if has_mutual_connection(&self.user.id, other_user, true) {
-                            permissions = 177;
+                            permissions = 1024 + 128 + 32 + 16 + 1;
                         } else {
                             permissions = 1;
                         }
-- 
GitLab