init
This commit is contained in:
1 parent
fdc9fb592d
commit
22b0bc36bb
4 files changed
+46
-8
No files matched your search
@@ -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()
|
||||
|
||||
Reference in new issue
Block a user