init
This commit is contained in:
1 parent
b7c48ce7f3
commit
8afa694aed
7 files changed
+119
-34
No files matched your search
@@ -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
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
Reference in new issue
Block a user