feat: make permissions more concise
This commit is contained in:
parent
1a0fefd364
commit
42b2d08a00
4 changed files with 17 additions and 18 deletions
|
@ -77,7 +77,7 @@ pub async fn create(
|
||||||
let member = Member::check_membership(&mut conn, uuid, guild_uuid).await?;
|
let member = Member::check_membership(&mut conn, uuid, guild_uuid).await?;
|
||||||
|
|
||||||
member
|
member
|
||||||
.check_permission(&data, Permissions::CreateChannel)
|
.check_permission(&data, Permissions::ManageChannel)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
let channel = Channel::new(
|
let channel = Channel::new(
|
||||||
|
|
|
@ -39,7 +39,7 @@ pub async fn upload(
|
||||||
let member = Member::check_membership(&mut conn, uuid, guild_uuid).await?;
|
let member = Member::check_membership(&mut conn, uuid, guild_uuid).await?;
|
||||||
|
|
||||||
member
|
member
|
||||||
.check_permission(&data, Permissions::ManageServer)
|
.check_permission(&data, Permissions::ManageGuild)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
let mut guild = Guild::fetch_one(&mut conn, guild_uuid).await?;
|
let mut guild = Guild::fetch_one(&mut conn, guild_uuid).await?;
|
||||||
|
|
|
@ -73,7 +73,7 @@ pub async fn create(
|
||||||
let member = Member::check_membership(&mut conn, uuid, guild_uuid).await?;
|
let member = Member::check_membership(&mut conn, uuid, guild_uuid).await?;
|
||||||
|
|
||||||
member
|
member
|
||||||
.check_permission(&data, Permissions::CreateRole)
|
.check_permission(&data, Permissions::ManageRole)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
let role = Role::new(&mut conn, guild_uuid, role_info.name.clone()).await?;
|
let role = Role::new(&mut conn, guild_uuid, role_info.name.clone()).await?;
|
||||||
|
|
|
@ -155,32 +155,31 @@ impl Role {
|
||||||
|
|
||||||
#[derive(Clone, Copy, PartialEq, Eq)]
|
#[derive(Clone, Copy, PartialEq, Eq)]
|
||||||
pub enum Permissions {
|
pub enum Permissions {
|
||||||
|
/// Lets users send messages in the guild or channel
|
||||||
SendMessage = 1,
|
SendMessage = 1,
|
||||||
CreateChannel = 2,
|
/// Lets users create, delete and edit channels and categories or a singular channel depending on permission context
|
||||||
DeleteChannel = 4,
|
ManageChannel = 2,
|
||||||
ManageChannel = 8,
|
/// Lets users manage roles in the guild
|
||||||
CreateRole = 16,
|
ManageRole = 4,
|
||||||
DeleteRole = 32,
|
/// Lets users create invites in the guild
|
||||||
ManageRole = 64,
|
CreateInvite = 8,
|
||||||
CreateInvite = 128,
|
/// Lets users manage invites in the guild
|
||||||
ManageInvite = 256,
|
ManageInvite = 16,
|
||||||
ManageServer = 512,
|
/// Lets users change guild settings
|
||||||
ManageMember = 1024,
|
ManageGuild = 32,
|
||||||
|
/// Lets users change member settings (nickname, etc)
|
||||||
|
ManageMember = 64,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Permissions {
|
impl Permissions {
|
||||||
pub fn fetch_permissions(permissions: i64) -> Vec<Self> {
|
pub fn fetch_permissions(permissions: i64) -> Vec<Self> {
|
||||||
let all_perms = vec![
|
let all_perms = vec![
|
||||||
Self::SendMessage,
|
Self::SendMessage,
|
||||||
Self::CreateChannel,
|
|
||||||
Self::DeleteChannel,
|
|
||||||
Self::ManageChannel,
|
Self::ManageChannel,
|
||||||
Self::CreateRole,
|
|
||||||
Self::DeleteRole,
|
|
||||||
Self::ManageRole,
|
Self::ManageRole,
|
||||||
Self::CreateInvite,
|
Self::CreateInvite,
|
||||||
Self::ManageInvite,
|
Self::ManageInvite,
|
||||||
Self::ManageServer,
|
Self::ManageGuild,
|
||||||
Self::ManageMember,
|
Self::ManageMember,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue