aboutsummaryrefslogtreecommitdiff
path: root/src/model
diff options
context:
space:
mode:
authorZeyla Hellyer <[email protected]>2017-10-31 08:51:43 -0700
committerZeyla Hellyer <[email protected]>2017-10-31 08:51:43 -0700
commitd3eddc68e07bbc31e2043577cbf48741f0547ed3 (patch)
tree0fc2dce6b79f4a5e233b2ce65e87f9c5b868725d /src/model
parentSlightly clarify ratelimiting documentation (diff)
downloadserenity-d3eddc68e07bbc31e2043577cbf48741f0547ed3.tar.xz
serenity-d3eddc68e07bbc31e2043577cbf48741f0547ed3.zip
Make Member::permissions return guild permissions
Fixes what is realistically a bug where `Member::permissions` would retrieve the permissions for the Member in the default channel of the guild. This now only returns the guild-level permissions of the member.
Diffstat (limited to 'src/model')
-rw-r--r--src/model/guild/member.rs14
1 files changed, 3 insertions, 11 deletions
diff --git a/src/model/guild/member.rs b/src/model/guild/member.rs
index a9de969..c81e2a3 100644
--- a/src/model/guild/member.rs
+++ b/src/model/guild/member.rs
@@ -265,7 +265,7 @@ impl Member {
self.guild_id.kick(self.user.read().unwrap().id)
}
- /// Returns the permissions for the member.
+ /// Returns the guild-level permissions for the member.
///
/// # Examples
///
@@ -292,17 +292,9 @@ impl Member {
None => return Err(From::from(ModelError::GuildNotFound)),
};
- let guild = guild.read().unwrap();
+ let reader = guild.read().unwrap();
- let default_channel = match guild.default_channel() {
- Some(dc) => dc,
- None => return Err(From::from(ModelError::ItemMissing)),
- };
-
- Ok(
- guild
- .permissions_in(default_channel.id, self.user.read().unwrap().id),
- )
+ Ok(reader.member_permissions(self.user.read().unwrap().id))
}
/// Removes a [`Role`] from the member, editing its roles in-place if the