shared/application/rbac/
user_role_permission.rs1use 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}