This commit is contained in:
Nell committed 2026-07-14 23:07:48 +02:00
1 parent b7c48ce7f3
commit 8afa694aed
7 files changed
+119 -34

No files matched your search

+8 -1
View File
@@ -7,11 +7,17 @@ use crate::repositories::{AnyResult, RepositoryContext};
use sea_orm::{ColumnTrait, EntityTrait, QueryFilter, QuerySelect, Set, TransactionTrait};
use std::collections::HashMap;
use std::sync::Arc;
use std::sync::{Arc, OnceLock};
use tokio::sync::Mutex;
use uuid::Uuid;
use crate::models::computed_permission::PermissionScopeType;
static SYNC_LOCK: OnceLock<Mutex<()>> = OnceLock::new();
fn _sync_lock() -> &'static Mutex<()> {
SYNC_LOCK.get_or_init(Mutex::default)
}
#[derive(Clone, Debug)]
pub struct ComputedPermissionRepository {
pub context: Arc<RepositoryContext>,
@@ -50,6 +56,7 @@ impl ComputedPermissionRepository {
/// - permissions de canal accordées aux rôles de l'utilisateur ;
/// - permissions directes de l'utilisateur dans les canaux.
pub async fn full_sync_user(&self, user_id: Uuid, server_id: Uuid) -> AnyResult<()> {
let _guard = _sync_lock().lock().await;
// ---------------------------------------------------------------------
// Rôles de l'utilisateur
// ---------------------------------------------------------------------