Skip to main content

shared/application/rbac/
user_role_permission.rs

1use crate::error::Result;
2
3use crate::domain::model::UserRole;
4use crate::intern::rbac::RbacService;
5
6impl RbacService {
7    #[tracing::instrument(name = "auth.insert_user_role", skip(self, user_id, role))]
8    pub async fn insert_user_role(&self, user_id: &str, role: &str) -> Result<()> {
9        let role = self.role_repository.find(role).await?;
10        let role_id = role.id()?;
11
12        let user_role = UserRole::new(user_id, role_id);
13        self.user_role_repository.insert(user_role).await
14    }
15
16    #[tracing::instrument(
17        name = "auth.find_role", skip(self), fields(user.id = user_id)
18    )]
19    pub async fn find_user_role(&self, user_id: &str) -> Result<UserRole> {
20        self.user_role_repository.find(user_id).await
21    }
22}