From 3fbab7638be44914a7a28ac366ca03d4d1df9bba Mon Sep 17 00:00:00 2001 From: Zeyla Hellyer Date: Fri, 14 Sep 2018 21:41:31 -0700 Subject: Message: avoid perm checks in non-guild channels --- src/model/channel/message.rs | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/model/channel/message.rs b/src/model/channel/message.rs index d1c55b7..b72849c 100644 --- a/src/model/channel/message.rs +++ b/src/model/channel/message.rs @@ -407,10 +407,12 @@ impl Message { pub fn pin(&self) -> Result<()> { #[cfg(feature = "cache")] { - let req = Permissions::MANAGE_MESSAGES; + if self.guild_id.is_some() { + let req = Permissions::MANAGE_MESSAGES; - if !utils::user_has_perms(self.channel_id, req)? { - return Err(Error::Model(ModelError::InvalidPermissions(req))); + if !utils::user_has_perms(self.channel_id, req)? { + return Err(Error::Model(ModelError::InvalidPermissions(req))); + } } } @@ -440,10 +442,12 @@ impl Message { fn _react(&self, reaction_type: &ReactionType) -> Result<()> { #[cfg(feature = "cache")] { - let req = Permissions::ADD_REACTIONS; + if self.guild_id.is_some() { + let req = Permissions::ADD_REACTIONS; - if !utils::user_has_perms(self.channel_id, req)? { - return Err(Error::Model(ModelError::InvalidPermissions(req))); + if !utils::user_has_perms(self.channel_id, req)? { + return Err(Error::Model(ModelError::InvalidPermissions(req))); + } } } @@ -479,10 +483,12 @@ impl Message { #[cfg(feature = "cache")] { - let req = Permissions::SEND_MESSAGES; + if self.guild_id.is_some() { + let req = Permissions::SEND_MESSAGES; - if !utils::user_has_perms(self.channel_id, req)? { - return Err(Error::Model(ModelError::InvalidPermissions(req))); + if !utils::user_has_perms(self.channel_id, req)? { + return Err(Error::Model(ModelError::InvalidPermissions(req))); + } } } @@ -532,10 +538,12 @@ impl Message { pub fn unpin(&self) -> Result<()> { #[cfg(feature = "cache")] { - let req = Permissions::MANAGE_MESSAGES; + if self.guild_id.is_some() { + let req = Permissions::MANAGE_MESSAGES; - if !utils::user_has_perms(self.channel_id, req)? { - return Err(Error::Model(ModelError::InvalidPermissions(req))); + if !utils::user_has_perms(self.channel_id, req)? { + return Err(Error::Model(ModelError::InvalidPermissions(req))); + } } } -- cgit v1.2.3