fix: resolve permission UUIDs to names in role DTO
The build_role_dto function was using permission UUIDs as both id and name fields. Now resolves UUIDs to human-readable names via PermissionsEnum::iter() lookup. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
d014a94ea4
commit
4ee00f1fe5
@@ -1,10 +1,11 @@
|
|||||||
#![allow(clippy::field_reassign_with_default)]
|
#![allow(clippy::field_reassign_with_default)]
|
||||||
use crate::users::domain::UserListItem;
|
use crate::users::domain::UserListItem;
|
||||||
use imphnen_entities::{
|
use imphnen_entities::{
|
||||||
PermissionsQueryDto, RolesDetailQueryDto, UsersDetailQueryDto,
|
PermissionsEnum, PermissionsQueryDto, RolesDetailQueryDto, UsersDetailQueryDto,
|
||||||
seaorm::auth::roles::Entity as RolesEntity,
|
seaorm::auth::roles::Entity as RolesEntity,
|
||||||
seaorm::auth::users::{Column as UserColumn, Entity as UsersEntity},
|
seaorm::auth::users::{Column as UserColumn, Entity as UsersEntity},
|
||||||
};
|
};
|
||||||
|
use strum::IntoEnumIterator;
|
||||||
use imphnen_utils::AppError;
|
use imphnen_utils::AppError;
|
||||||
use paginator_rs::{PaginationParams, SortDirection};
|
use paginator_rs::{PaginationParams, SortDirection};
|
||||||
use paginator_utils::{PaginatorResponse, PaginatorResponseMeta};
|
use paginator_utils::{PaginatorResponse, PaginatorResponseMeta};
|
||||||
@@ -12,6 +13,15 @@ use sea_orm::prelude::*;
|
|||||||
use sea_orm::{Order, PaginatorTrait, QueryOrder};
|
use sea_orm::{Order, PaginatorTrait, QueryOrder};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
|
fn resolve_permission_name(id: &str) -> String {
|
||||||
|
for perm in PermissionsEnum::iter() {
|
||||||
|
if perm.id() == id {
|
||||||
|
return perm.to_string();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
id.to_string()
|
||||||
|
}
|
||||||
|
|
||||||
pub fn build_role_dto(
|
pub fn build_role_dto(
|
||||||
role: Option<imphnen_entities::seaorm::auth::roles::Model>,
|
role: Option<imphnen_entities::seaorm::auth::roles::Model>,
|
||||||
) -> RolesDetailQueryDto {
|
) -> RolesDetailQueryDto {
|
||||||
@@ -25,9 +35,10 @@ pub fn build_role_dto(
|
|||||||
list
|
list
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|p| {
|
.map(|p| {
|
||||||
|
let name = resolve_permission_name(&p);
|
||||||
Some(PermissionsQueryDto {
|
Some(PermissionsQueryDto {
|
||||||
id: Some(p.clone()),
|
id: Some(p),
|
||||||
name: Some(p),
|
name: Some(name),
|
||||||
created_at: None,
|
created_at: None,
|
||||||
updated_at: None,
|
updated_at: None,
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user