This commit is contained in:
Nell committed 2026-08-01 08:59:35 +02:00
1 parent fdc9fb592d
commit 22b0bc36bb
4 files changed
+46 -8

No files matched your search

+14
View File
@@ -13,6 +13,7 @@ use std::sync::{Arc, OnceLock};
use uuid::Uuid;
use crate::models::computed_permission::PermissionScopeType;
use crate::repositories::types::PermissionResource;
use crate::utils::ScopedLockManager;
// Instance globale du manager de verrous scopés par Server ID
@@ -35,6 +36,19 @@ impl ComputedPermissionRepository {
.await?)
}
pub async fn get_for_resource(
&self,
user_id: Uuid,
resource: PermissionResource,
) -> AnyResult<Option<computed_permission::Model>> {
Ok(computed_permission::Entity::find()
.filter(computed_permission::Column::UserId.eq(user_id))
.filter(computed_permission::Column::ScopeType.eq(resource.scope_type()))
.filter(computed_permission::Column::ResourceId.eq(resource.resource_id()))
.one(&self.context.db)
.await?)
}
/// Vérifie si l'utilisateur possède au moins une entrée de permission sur une ressource.
pub async fn had_perm_on(&self, user_id: Uuid, resource_id: Uuid) -> AnyResult<bool> {
Ok(computed_permission::Entity::find()