This commit is contained in:
2026-05-10 03:16:13 +02:00
parent 5f05108132
commit 0b441b0759
77 changed files with 2100 additions and 71 deletions
+20 -1
View File
@@ -1,5 +1,6 @@
//! `SeaORM` Entity, @generated by sea-orm-codegen 1.1.19
use crate::permissions::{ChannelPermission, PermissionSet, ServerPermission, VoicePermission};
use sea_orm::entity::prelude::*;
use sea_orm::prelude::async_trait::async_trait;
use sea_orm::Set;
@@ -13,7 +14,11 @@ pub struct Model {
pub password: Option<String>,
pub created_at: DateTimeUtc,
pub updated_at: DateTimeUtc,
pub default_permissions: u64,
/// Permissions serveur par défaut (stockées en i64, lues en u64)
pub default_server_permissions: i64,
pub default_channel_permissions: i64,
pub default_voice_permissions: i64,
}
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
@@ -47,9 +52,23 @@ impl Related<super::server_user::Entity> for Entity {
#[async_trait]
impl ActiveModelBehavior for ActiveModel {
fn new() -> Self {
let default_perm = PermissionSet::DEFAULT;
Self {
id: Set(Uuid::new_v4()),
default_server_permissions: Set(default_perm.server.bits() as i64),
default_channel_permissions: Set(default_perm.channel.bits() as i64),
default_voice_permissions: Set(default_perm.voice.bits() as i64),
..ActiveModelTrait::default()
}
}
}
impl Model {
pub fn default_permissions(&self) -> PermissionSet {
PermissionSet {
server: ServerPermission::from_bits_truncate(self.default_server_permissions as u64),
channel: ChannelPermission::from_bits_truncate(self.default_channel_permissions as u64),
voice: VoicePermission::from_bits_truncate(self.default_voice_permissions as u64),
}
}
}